游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

27个重要的JavaScript数组函数整理汇总

  1、Array。isArray()
  我们列表中的第一项是JavaScript中的isArray方法,它确定传递的输入是否为数组。
  语法:
  在下面的代码中,arr将是我们要检查的输入,是否为数组。isArray()函数的结果将是一个布尔值。Array。isArray(arr)
  示例:Array。isArray(〔1,something,true〕);trueArray。isArray({anything:123});falseArray。isArray(somestring);falseArray。isArray(undefined);false
  2、length
  列表中的第二项不是方法,而是数组的一个重要属性。我认为它也必须在列表中。从属性名称可以清楚地看出,它返回数组中项目的长度(总数)。
  语法:
  在下面的代码中arr是我们的输入数组,我们将通过使用length属性获取其项目数。arr。length;
  示例:〔〕。length;0〔1,something,true〕。length;3
  3、forEach()
  forEach方法的行为类似于for循环。但是您不必定义它将执行多少次迭代,因为它将执行与输入数组中的项目数相等的迭代。
  语法:
  在下面的代码中,arr将是我们的输入数组,forEach()方法将在该数组上执行。
  forEach方法包含一个回调函数callbackFn作为forEach方法的参数。
  callbackFn是一个ES6箭头函数。
  但是您也可以使用传统样式函数。此callbackFn将执行与输入数组中存在的项目数等效的迭代。
  在每次迭代中,都会在callbackFn的范围内执行一些代码。同样在callbackFn的每次迭代参数中,arrItem和index将使用连续的数组项和增量索引值进行更新。arr。forEach(callbackFn);constcallbackFn(arrItem,index){callbackFnScopeCodeExec}combiningabovestatementstogetherintoonelineofcodearr。forEach((arrItem,index){callbackFnScopeCodeExec});
  如果您还不明白,别着急,让我们看看下面的例子。
  例子:
  在下面的例子中,我们有一个输入数组〔‘apple’,‘banana’,‘carrot’〕,它在forEachcallbackFn中迭代。
  在callbackFn的范围内,我们正在打印callbackFn的参数。callbackFn有2个参数,arrItem和index。
  第二个参数index是可选的,如果你不需要它,你可以简单地省略它。由于arr有3个项目,因此callbackFn将迭代3次并在每次迭代时打印callbackFn的参数。〔apple,banana,carrot〕。forEach((arrItem,index){console。log(indexarrItem);});0apple1banana2carrot
  4、map()
  map()方法的行为类似于forEach,但主要区别在于,它返回一个新数组作为结果。
  您在一个数组上执行map(),在map方法callbackFn的范围内(如果您对callbackFn不清楚,查看forEach()方法解释),您执行一些语句。
  callbackFn的每次迭代都会为结果数组返回一个项目。
  语法:
  arr是我们的输入数组,map方法将在其上执行,并且在每次迭代时,都会将一个新项目添加到结果数组中,该数组将作为resultIteration返回。arr。map((arrItem,index){returnresultIteration});
  例子:
  我们对arr〔2,4,6,8,16〕执行map方法,并将结果保存在变量mapResult中。mapResult将是一个数组,该数组将填充map方法每次迭代的结果。
  在map方法callbackFn作用域中,我们将arr的每一项乘以2,并将每次迭代的结果附加到mapResult中。
  5次迭代后我们的最终mapResult数组将是〔4,8,12,16,32〕。constarr〔2,4,6,8,16〕;constmapResultarr。map(arrItemarrItem2);console。log(mapResult);〔4,8,12,16,32〕
  5、filter()
  filter()方法的行为类似于map()并返回一个数组作为结果。但正如名称所描述的,它返回一个过滤后的结果数组。
  您可以使用过滤器callbackFn范围内的条件来过滤结果数组。
  语法:
  arr将是filter方法将执行的数组,并且在每次迭代时,都会将一个新项目添加到结果数组中,该结果数组将作为resultIteration返回。arr。filter((arrItem,index){conditiontoreturnarrItem});
  例子:
  我们对arr〔2,4,6,8,16〕执行filter方法,并将结果保存在变量filterResult中。
  我们过滤输入数组的条件是(arrItem5ORarrItem10)。
  mapResult将是一个数组,它将填充符合条件的arr项目。
  在map方法函数代码块中,我们将arr的每一项乘以2,并将每次迭代的结果附加到mapResult中。constarr〔2,4,6,8,16〕;constfilterResultarr。filter(arrItemarrItem5arrItem10);console。log(mapResult);〔2,4,16〕
  6、sort()
  JavaScript中的sort()方法按字母顺序对输入数组进行排序。默认情况下,sort()函数将值作为字符串进行排序。constarr〔banana,orange,apple,mango〕;arr。sort();〔apple,banana,mango,orange〕
  如果我们尝试对数字数组进行排序,那么默认的排序方法结果会有点混乱。constarr〔22,14,0,100,89,201〕;arr。sort();〔0,100,14,201,22,89〕
  如果使用sort()方法对数字数组进行排序,则默认情况下将其视为字符串数组。
  所以22会在100之后,因为22的2比100的1大。我们可以通过提供一个比较函数(compareFn)来解决这个问题。compareFnforascendingorderconstcompareFnAsc(a,b)ab;compareFnfordescendingorderconstcompareFnDes(a,b)ba;constarr〔22,14,0,100,89,201〕;arr。sort(compareFnAsc);〔0,14,22,89,100,201〕arr。sort(compareFnDes);〔201,100,89,22,14,0〕
  有关一些高级排序示例,请查看此处:https:developer。mozilla。orgenUSdocsWebJavaScriptReferenceGlobalObjectsArraysort
  7、concat()
  concat()方法用于合并两个或多个数组。它不会更改现有数组,而是返回一个新的结果数组。
  语法:
  您可以在concat方法中将1到N个值作为参数传递。每个值可以是任何类型。结果concat方法将这些所有值合并到一个结果数组中。arr。concat(value);arr。concat(value0,value1,。。。,valueN);
  例子:
  让我们看一下concat方法的2个示例。Example1Concat2arraysofstringandnumbertypeconstletters〔a,b,c〕;constnumbers〔1,2,3〕;letters。concat(numbers);〔a,b,c,1,2,3〕Example2Concatastringarraywith2values(numberandnumberarray)constletters〔a,b,c〕;constalphaNumericletters。concat(1,〔2,3〕);console。log(alphaNumeric);〔a,b,c,1,2,3〕
  8、every()
  我们列表中的下一个有用的数组方法是every()。该方法测试输入数组中的所有元素是否都通过了实现的条件。它返回一个布尔值。
  语法:arr。every(callbackFn);constcallbackFn(arrItem,index){conditiontocheckoneveryarrItem}
  例子:
  在下面的示例中,我们有带有数字值的arr1和arr2数组。我们要检查它们的两个数组值是否都大于或等于0。
  对于arr1,结果将为假,因为它包含4和1。
  所以我们的条件将在那里失败,但arr2将在每个数组项上传递条件,我们将获得真实的结果。constarr1〔89,0,4,34,1,10〕;constarr2〔89,0,45,34,1,100〕;arr1。every(arrItemarrItem0);falsearr2。every(arrItemarrItem0);true
  9、some()
  我们列表中的下一个方法是some()。这个方法和every()完全一样。不同之处在于我们检查输入数组的所有元素的条件,如果有任何元素满足条件,则返回true。
  如果输入数组的元素都没有通过条件,则返回false。语法与every()方法相同。
  例子:
  在这个例子中,我们有2个类型为number的数组。我们正在检查的条件与every()方法中的最后一个示例相同,任何大于或等于0的arrayItem值。
  这里因为我们使用some()方法,所以,如果任何项目将满足我们的条件,则为真,否则为假。constarr1〔89,0,44,34,1,10〕;constarr2〔8,45,1,100,9〕;arr1。some(arrItemarrItem0);truearr2。some(arrItemarrItem0);false
  10、includes()
  include()方法检查输入数组是否在其条目中包含某个值,并返回一个布尔值。
  例子:constarr〔1,2,3,4,5〕;TypeofmatchingargumentshouldmatchwiththearrayentryInthecodebelow2isoftypenumberbutinarr2isstringconsole。log(arr。includes(2));falseconsole。log(arr。includes(2));true
  11、join()
  join()方法通过连接输入数组中的所有条目来返回一个新字符串。如果数组只有一项,则该项将在不使用分隔符的情况下返回。
  将分隔符参数传递给join方法是可选的。无论您将在join方法中传递什么参数字符串,输入数组的所有条目都将使用该字符串连接起来。
  语法:arr。join();arr。join(separator);
  示例:constarr〔Hello,World,!〕;arr。join();Hello,World,!arr。join(,);Hello,World,!arr。join();HelloWorld!arr。join();HelloWorld!arr。join();HelloWorld!
  12、reduce()
  reduce()方法执行一个reducer功能,由用户应用于输入数组的项目。在数组的所有项目上运行reducer的最终结果返回一个值。
  我认为理解reduce()方法案例的最简单方法是返回数组中所有项目的总和。
  这里的reducer函数会遍历每一个数组项,在每一步都将当前数组项的值加到上一步的结果中(这个结果是前面所有步骤的运行总和),直到没有更多的项要添加。
  语法:
  输入数组arr对其执行reduce()方法。reduce()方法有一个回调函数(callbackFn)作为参数。
  这个callbackFn基本上是reducer函数,它累加输入arr的所有值并返回单个值。
  reduce()方法的第二个参数是初始值(initVal),这是一个可选参数。
  现在reducer函数回调函数(callbackFn)有4个参数。
  第一个参数total是上一次调用callbackFn的值。
  第二个参数是当前数组项(currArrItem)的值。
  第三个参数是索引,它是可选的。
  最后一个参数是输入数组(arr),它也是可选的。constcallbackFn(total,currArrItem,index,arr){。。。}arr。reduce(callbackFn,initVal)Combiningabovestatementsintoonestatementarr。reduce((total,currArrItem,index,arr){。。。},initVal)
  让我们看一下示例以更好地理解reduce()方法。
  例子:
  在下面的示例中,我们使用reduce()方法来累积输入arr。constarr〔1,2,3,4〕;constreducer(prevVal,currVal)prevValcurrVal;arr。reduce(reducer);10InthecodebelowinitValissetto5,whichmeansthatwehavetoinitthesumwithinitialvalue5:51234arr。reduce(reducer,5);15
  13、find()
  列表中的下一个JavaScript数组方法是find()。它返回输入数组中满足find方法callbackFn中给定条件的第一个元素的值。
  如果没有值满足callbackFn的条件,则返回undefined。
  语法:arr。find((arrItem)conditiontocheckonarrItem);
  示例:constarr〔5,10,100,12,8,130,44〕;constresultarr。find(arrItemarrItem10);console。log(result);100
  14、findIndex()
  findIndex()方法返回输入数组中满足find方法callbackFn中给定条件的第一个元素的索引。否则返回1,表示没有数组项通过条件检查。语法将与find()方法保持相同,只是返回结果会有所不同。
  例子:constarr〔5,10,100,12,8,130,44〕;constresult1arr。findIndex(arrItemarrItem10);constresult2arr。findIndex(arrItemarrItem1000);console。log(result1);2console。log(result2);1
  15、indexOf()
  这类似于findIndex()方法,但不同之处在于indexOf()方法返回可以在输入数组中找到给定元素(作为indexOf()方法的参数传递)的第一个索引。如果未找到,则返回1。
  示例:constarr〔5,10,100,12,8,130,44〕;arr。indexOf(12);3Astheinputargument12isoftypestringandtheinputarrayarrelementsareoftypenumbersotherewillbenomatchininputarrarr。indexOf(12);1
  16、fill()
  fill()方法使用静态值更改输入数组中的所有元素。此方法返回修改后的数组。
  语法:
  传递给fill()方法需要第一个参数。如果我们没有在fill()方法中传递第二个和第三个参数,那么第二个参数将默认为0(startIndex),第三个参数将是数组(arr。length)索引中的最后一项。arr。fill(value)defaultstartIndex0arr。fill(value,startIndex)defaultendIndexisarr。lengtharr。fill(value,startIndex,endIndex)
  示例:constarr1〔A,B,C,D,E,F,G,H〕;arr1。fill(0);〔0,0,0,0,0,0,0,0〕constarr2〔A,B,C,D,E,F,G,H〕;arr2。fill(0,5);〔A,B,C,D,E,0,0,0〕constarr3〔A,B,C,D,E,F,G,H〕;arr3。fill(0,5,7);〔A,B,C,D,E,0,0,H〕constarr4〔1,2,3,4,5〕;arr4。fill();〔undefined,undefined,undefined,undefined,undefined〕
  17、slice()
  slice()方法是一个非常有用的JavaScript数组方法。它为slice方法中传递的给定参数制作原始数组的副本。
  这些参数定义了新数组副本的开始和结束索引。不会修改原始数组。
  语法:arr。slice()arr。slice(startIndex)arr。slice(startIndex,endIndex)
  示例:constarr〔rats,sheep,cows,chickens,dogs,1001〕;arr。slice();〔rats,sheep,cows,chickens,dogs,1001〕arr。slice(3);〔chickens,dogs,1001〕arr。slice(2,5);〔cows,chickens,dogs〕arr。slice(4);〔cows,chickens,dogs,1001〕
  18、splice()
  splice()方法通过删除或替换现有项目和或添加新项目来更改数组的内容。不会修改原始数组。
  语法:arr。splice(startIndex)arr。splice(startIndex,deleteCount)arr。splice(startIndex,deleteCount,item1)arr。splice(startIndex,deleteCount,item1,。。。,itemN)
  示例:Example1Remove0itemsbeforeindex2insertdrumletarr〔angel,clown,mandarin,sturgeon〕;letremovedArrarr。splice(2,0,drum);arr:〔angel,clown,drum,mandarin,sturgeon〕removedArr:〔〕Example2Remove0itemsbeforeindex2insertdrum,guitarletarr〔angel,clown,mandarin,sturgeon〕;letremovedArrarr。splice(2,0,drum,guitar);arr:〔angel,clown,drum,guitar,mandarin,sturgeon〕removedArr:〔〕Example3Remove1elementatindex3letarr〔angel,clown,drum,mandarin,sturgeon〕;letremovedArrmyFish。splice(3,1);arr:〔angel,clown,drum,sturgeon〕removedArr:〔mandarin〕Example4Remove1elementatindex2inserttrumpetletarr〔angel,clown,drum,sturgeon〕;letremovedArrarr。splice(2,1,trumpet);arr:〔angel,clown,trumpet,sturgeon〕removedArr:〔drum〕Example5Remove2itemsfromindex0insertparrot,anemone,blueletarr〔angel,clown,trumpet,sturgeon〕;letremovedArrarr。splice(0,2,parrot,anemone,blue);arr:〔parrot,anemone,blue,trumpet,sturgeon〕removedArr:〔angel,clown〕
  19、reverse()
  顾名思义,reverse()方法反转输入数组。
  例子:constarr1〔1,2,3〕;arr1。reverse();〔3,2,1〕constarr2〔1,4,3,1,somestring,100〕;arr2。reverse();〔100,somestring,1,3,4,1〕
  20、push()
  JavaScript中的push()方法将一个或多个(任何类型的)项目添加到数组的末尾,并返回数组中项目的更新总数。
  语法:arr。push(value);arr。push(value0,value1,。。。,valueN);
  示例:constanimals〔cats,rats,sheep〕;animals。push(cows);4console。log(animals);〔cats,rats,sheep,cows〕animals。push(chickens,dogs,1001);7console。log(animals);〔cats,rats,sheep,cows,chickens,dogs,1001〕
  21、pop()
  pop()方法从数组中删除最后一项并返回该项。输入数组的长度减1。
  例子:constarr〔rats,sheep,cows,chickens,dogs,1001〕;arr。pop();1001console。log(arr);〔rats,sheep,cows,chickens,dogs〕
  22、shift()
  JavaScript的shift()方法从数组中删除第一项并返回该项。输入数组的长度减1,和pop()方法一样。
  例子:constarr〔rats,sheep,cows,chickens,dogs,1001〕;arr。shift();ratsconsole。log(arr);〔sheep,cows,chickens,dogs,1001〕
  23、unshift()
  unshift()方法将一项或多项添加到数组的开头,并返回数组的新长度。语法与push()相同。push()方法只是在数组的末尾,但unshift()方法在开头添加。
  例子:constanimals〔cats,rats,sheep〕;animals。unshift(cows);4console。log(animals);〔cows,cats,rats,sheep〕animals。unshift(chickens,dogs,1001);7console。log(animals);〔chickens,dogs,1001,cows,cats,rats,sheep〕
  24、Array。of()
  Array。of()方法从可变数量的参数创建一个新的Array实例,而不管参数的数量或类型。
  例子:Array。of(1);〔1〕Array。of(1,2,3);〔1,2,3〕Array。of(undefined);〔undefined〕
  25、Array。from()
  Array。from()静态方法从类数组或可迭代对象创建一个新的、浅复制的Array实例。
  语法:Array。from(value,callbackFn)
  示例:Array。from(hello);〔h,e,l,l,o〕Array。from(〔1,2,3〕,arrItemarrItem4);〔4,8,12〕
  26、flat()
  JavaScript的flat()方法创建一个新数组,其中所有子数组项以递归方式连接到指定深度。
  句法:
  指定嵌套数组结构应展平的深度的深度级别。如果没有参数传递给flat()方法,则默认深度为1。或者您可以传递任何深度参数。arr。flat()arr。flat(depth)
  示例:
  让我们看一些JavaScript中flat()方法的例子。Example1constarr1〔0,1,2,〔3,4〕〕;console。log(arr1。flat());〔0,1,2,3,4〕Example2constarr2〔0,1,2,〔〔〔3,4〕〕〕〕;console。log(arr2。flat(2));〔0,1,2,〔3,4〕〕console。log(arr2。flat(3));〔0,1,2,3,4〕
  27、at()
  at()方法将一个整数作为参数,并返回输入数组中该索引处的项目。at()方法的参数可以是正数或负数。负整数从输入数组的最后一项开始计数。
  语法:arr。at(index)
  示例:constarr〔chickens,dogs,1001,cows,cats,sheep〕arr。at(1);dogsarr。at(1);sheeparr。at(2);1001arr。at(2);catsarr。at(100);undefined
  结论
  如果您有扩展此函数列表的想法,请随时在留言区中分享您的想法。我很乐意根据您的建议来增加并丰富此列表。

骁龙898旗舰要来了三星小米首发,有望12月发布虽然说今年的骁龙888处理器性能很强,但随着而来的却是功耗、发热量剧增,部分场景的体验甚至不如去年的骁龙865处理器。这也受到了众多网友的吐槽,并寄希望于新一代旗舰处理器898……聊聊我妈退休下来的那款笔记本电脑今天继续聊我妈的电脑。昨天我们说到,我妈想换一台笔记本,所以我给她买了一台LGgram16Z90P,主要就看中它机身很轻,同时屏幕很大。但我不小心多了一嘴提到退休下……信号向乡村普及套餐全面降价有可能了?近日,中国电信和中国联通发布了2021年5G主设备(2。1G)联合集中采购项目中标候选人结果,华为、中兴通讯、大唐移动、爱立信入围,上海诺基亚贝尔出局。5G主设备三期招标……特斯拉刹车失灵引发事故,乘客被烧成焦炭,豪华车引爆网友公愤2021年上海国际车展媒体日上,一名女子站在特斯拉汽车车顶维权。图源:上游新闻4月19日,距离315维权日不足一月,上海国际车展上便发生了令人震惊的一幕。一名身着特……纯电SUV新爆款,零跑C11对比小鹏P5有何优势?相比造车新势力中名气比较大的蔚小理来说,零跑的存在感其实不算特别强,很大程度上是由于这些头部选手都遵循了流量至上的运营思路,鲜少有像零跑这样闷头做技术的,但零跑也不是一直默默无……157高色域,TCL65英寸75英寸两款大屏幕电视降价最近不知道大家发现没有,在电视市场,TCL的技术和实力优势越来越明显,这主要是由于其具有自有生产线,所以不管是分区背光电视,还是高色域电视,还是MiniLED电视,都要比其他竞……黄金木乃伊实拍107件稀世文物用小米MIX4带你穿回神秘古埃【科技犬】8月15日,遇见古埃及黄金木乃伊展在中华世纪坛开展,107件古埃及稀世藏品亮相,包括大规模展出的黄金木乃伊,现存最早的肖像画之一法尤姆肖像木乃伊,埃及艳后相关展……卡萨帝的品质就是不向任何一个细节妥协在大多用户心目中,高端品牌已经成为高品质的代名词。那么,高端品牌对品质的要求究竟严苛到了什么程度?8月23日,卡萨帝发布90s光影写真视频大片,一面在光里,将每一个零部件的制造……这些中国公司何以入围世界500强?有啥真本事巨头比武,500强榜单释放哪些信号【经济界面】几场秋雨过后,北京多了些凉爽。近日,多家公司的秋季校园招聘陆续开始了。在一些求职学子眼里,世界500强的名头是一个重要……任正非让贫穷的老百姓去救一个有钱的华为,我良心上过不去从2019年开始,国产华为手机就已经成了中国在世界范围最出名的科技品牌公司,因为高超的创新能力和品牌影响力,华为自2020年开始,产品销量仅次于美国苹果手机,并且率先开创了5G……漫步者W820NB头戴式耳机平价蓝牙降噪耳机的性价比之选提到头戴降噪耳机,第一反应肯定是价格不菲的索尼和bose吧?国民音频大厂漫步者最近推出了新款头戴主动降噪耳机,价格竟然只有前者的几分之一,到底体验如何呢?在三百元左右的价……支付渠道破冰!银联云闪付现身淘宝结算页面,微信支付还远吗?在淘宝购物为何不能使用微信支付,通过微信平台付款时怎么不能选择支付宝花呗扣款近年来,随着移动支付的兴起,不少用户在使用手机付款时也难免会冒出前述疑问,却始终没有找到解决方案。……
手机密码忘了怎么开锁手机发展是非常迅速的,并且如今的手机功能也是非常的强大的。所以很多朋友对手机的安全也是越来越重视了,所以很多朋友都有使用锁屏的习惯,而锁屏主要是不想让别人看到自己的手机隐私。锁……手机屏幕触控失灵,那是这几点没有做好点亮好奇心在我们生活当中的一些使用习惯,对手机屏幕的寿命也会有着很大的影响,如果想要让自己的手机屏幕一直保持在正常状态的话,在平时要避开一些坏习惯,接下来跟大家讲解在平时……碎片化时间自学Java入门到精通教程(176集精华版)今天给大家推荐一套贯穿Java的入门基础知识的教程一起来看看吧:第1章初识JavaSE和环境搭建第2章Java基本语法第3章程序流程控制第4章函数……从6499元跌至3699元,1200万苹果A12,旧款iPh当绝大多数果粉都把目光放在即将发布的iPhone13系列新机上的时候,有许多消费者反而会专门注意此前的旧款iPhone,因为新款iPhone到来之前,旧款iPhone的售价往往……有初科技SpaceTouching技术,赋能沉浸式互动投影空在工业化时代,工业化大生产带来工业标准产品的生产效率提升,一批率先完成工业化的英国、美国、法国等西方国家企业意识到竞争中公关、广告的重要性,并发明了5W理论、4P营销模型、多级……周鸿祎政企安全再造一个超越360的360我们要做中国数字经济的安全卫士。中国GDP的40已经是数字经济,510年以后,很有可能8090是跟数字化有关。而我们在保卫整个国家的GDP,能说安全这个事儿还不重要吗?5……北风那个吹,雪花那个飘,连腾讯阿里都史诗级裁员了开印者每日热搜评论大厂裁员上热搜了,小人物瑟瑟发抖。据猎云网消息,腾讯阿里在未来几周内将史诗级裁员。据内部员工猜测腾讯预计裁员1030,阿里裁员30。本周,阿……小米社区致歉,称将向所有用户重新开放申请内测权限就近期关于MIUI开发版及稳定版的内测与公测权限调整的问题,小米社区官网8月17日晚间发布公告致歉,那么既然致歉了,我们又一起来看看小米针对于这个问题的回应是怎么样的?消……思必驰携手漫谷科技,AI赋能健康服务花式养老根据统计,2018年中国60周岁及以上人口接近2。5亿老龄化现象越来越突出。另外,人工智能技术不断成熟,从大的趋势来看,不管是人工智能发展,还是老年人消费市场,都共同催生了家庭……王者再临2022款CS75PLUS正式上市售价11。79万元如果问哪款车是长安的现象级车型,大家会想到谁?每个人的回答都各不相同,在我看来,长安CS75PLUS是长安的现场级车型。长安汽车A级SUV明日座驾CS75PLUS自……AppStore限免AR解剖预算支出分数切切切2等,共5款在今天限免的iOS限免应用中,波老师精选了以下4款限免应用,1款限免游戏。复制logo上方名字即可前往AppStore下载。如遇恢复原价,则表示限免已结束,请谨慎下载。具……CC排序算法之冒泡排序和选择法排序文章首发于CSDN,博主HanSmileLiao链接原文链接:https:blog。csdn。netNebulaChienarticledetails120436663转……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网