js中的数组是非常非常重要的数据结构,也非常非常的灵活,方法非常的齐全。本来es5就已经有非常多的的方法,es6又对其进行了扩展,可见这数据结构在开发过程中真的非常的重要。撸起:
let
结果:
先来总结一下ES5的Array的重要方法:
谁能告诉我,表格如何输入,我实在不知道如何输入表格数据,所以使用了图片。
方法详解
1、concat():合并数组,可以合并一个或多个数组,返回合并数组之后的新数组,不会改变原来的数组。
// 1:concat(); 功能:合并数组,可以合并一个或多个数组,返回合并数组之后的新数组,不会改变原来的数组。
2、join():
// 2:join(); 功能:将数组转为字符串并返回转化的字符串数据,不会改变原来的数组。
3、pop():删除数组的最后一位,并且返回删除的数据,会改变原来的数组。
//3、pop():删除数组的最后一位,并且返回删除的数据,会改变原来的数组。
4、shift():删除数组的第一位数据,并且返回新数组的长度,会改变原来的数组。
//4、shift():删除数组的第一位数据,并且返回新数组的长度,会改变原来的数组。
5、unshift():在数组的首位新增一个或多数据,并且返回数组的长度,会改变原来的数组。
//5、unshift():在数组的首位新增一个或多数据,并且返回数组的长度,会改变原来的数组。
6、push():在数组的最后一位新增一个或多个数据,并且返回数组的长度,会改变原来的数组。
//6、push()():在数组的最后一位新增一个或多个数据,并且返回数组的长度,会改变原来的数组。
7、reverse():将数组的数据进行反转,并且返回反转后的数组,会改变原数组。
//7、reverse()():将数组的数据进行反转,并且返回反转后的数组,会改变原数组。
8、sort():对数组内的数据进行排序(默认为升序),并且返回排过序的新数组,会改变原来的数组。
//8、sort():对数组内的数据进行排序(默认为升序),并且返回排过序的新数组,会改变原来的数组。
9、slice():截取指定位置的数组,并且返回截取的数组,不会改变原数组。
参数:slice(startIndex, endIndex)
注意:可从已有的数组中返回选定的元素。该方法接收两个参数slice(start,end),strat为必选,表示从第几位开始;end为可选,表示到第几位结束(不包含end位),省略表示到最后一位;start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。
在实际的开发中,最好不要使用负数做为参数。
//9、slice():截取指定位置的数组,并且返回截取的数组,不会改变原数组。
10、splice():向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。
参数:splice(start,num,data1,data2,...); 所有参数全部可选。
//10、splice():向数组中添加,或从数组删除,或替换数组中的元素,然后返回被删除/替换的元素。
11、valueOf():返回数组的原始值(一般情况下其实就是数组自身)。
//11、valueOf():返回数组的原始值(一般情况下其实就是数组自身)。
12、indexOf():根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引。不会更改数组结构。
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找。在开发过程中最好不要设置start值。
//12、IndexOf():根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引。
13、lastIndexOf():根据指定的数据,从左向右,查询在数组中最后出现的位置,如果不存在指定的数据,返回-1。不会更改数组结构。
//13、lastIndexOf():根据指定的数据,从左向右,查询在数组中最后出现的位置,如果不存在指定的数据,返回-1。不会更改数组结构。
14、forEach():数组迭代器,循环遍历数组。此方法最好是在数组中的元素结构一致的时候使用。不会更改数组结构。
//14、forEach():数组迭代器,循环遍历数组。
15、map():数组迭代器,循环遍历数组。此方法最好是在数组中的元素结构一致的时候使用,与forEach一样的功能。不会更改数组结构。
//15、map():数组迭代器,循环遍历数组。
16、filter():数组过滤,依过滤回调函数逻辑,返回满足要求的新数组。不会更改数组结构。
//16、filter():数组过滤,依过滤回调函数逻辑,返回满足要求的新数组。
17、every():判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。不会更改数组结构。
//17、every():判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。
18、some():判断数组中是否有一项符合要求,如果有返回true,否则返回false。不会更改数组结构。
//18、some():判断数组中是否有一项符合要求,如果有返回true,否则返回false。不会更改数组结构。
19、reduce():从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。
参数:reduce()接收一个或两个参数:第一个是回调函数,表示在数组的每一项上调用的函数;第二个参数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。 reduce(callback,initial);callback默认有四个参数,分别为prev,now,index,self。 callback返回的任何值都会作为下一次执行的第一个参数。 如果initial参数被省略,那么第一次迭代发生在数组的第二项上,因此callback的第一个参数是数组的第一项,第二个参数就是数组的第二项。
//19、reduce():从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。
20、reduceRight():从数组的最后一项开始,逐个遍历到最前,迭代数组的所有项,然后构建一个最终返回的值。
//20、reduceRight():从数组的最后一项开始,逐个遍历到最前,迭代数组的所有项,然后构建一个最终返回的值。
21、toString():将数组转换成字符串。
//21、toString():将数组转换成字符串。
好了,数组的方法介绍完成了,总结一下:
1、修改了数组结构的方法有:
unshift()、push()、shift()、pop()、sort()、reverse()、splice()
2、比较容易错的方法有:
splice()、slice()
该文章参照了:
晚安