参考:https://wangdoc.com/javascript/stdlib/array.html
一、静态方法
Array.isArray():Array.isArray
方法返回一个布尔值,表示参数是否为数组。
二、实例方法
2.1 valueOf():是一个所有对象都拥有的方法,表示对该对象求值;数组的valueOf方法返回数组本身。
toString():也是对象的通用方法,数组的toString方法返回数组的字符串形式。
2.2 push():用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。
pop():用于删除数组的最后一个元素,并返回该元素。对空数组使用该方法,不会报错,而是返回undefined。
2.3 shift():用于删除数组的第一个元素,并返回该元素;该方法可以遍历并清空一个数组。
unshift():用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度,可以接受多个参数。
2.4 join(): 以指定参数作为分隔符,将所有数组成员连接为一个字符串返回;如果不提供参数,默认用逗号分隔。
2.5 concat():用于将多个数组合并,将新数组的成员添加到原数组成员的后部,返回一个新数组,原数组不变;如果数组成员包括对象,该方法返回当前数组的一个浅拷贝。
2.6 reverse():用于颠倒排列数组元素,返回改变后的数组。
2.7 slice():用于提取目标数组的一部分,返回一个新数组,原数组不变。它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内),如果参数是负数,则表示倒数计算的位置。
2.8 splice():用于删除原数组的一部分成员,并可以在删除位置添加新的数组成员,返回值是被删除的元素。它的第一个参数是删除的起始位置(从0开始),第二个参数是被删除的元素的个数。如果起始位置是负数,则表示从倒数位置开始删除。
2.9 sort():用于对数组成员进行排序,默认是按照字典顺序排序,如果想让该方法按照自定义方式排序,可以传入一个函数作为参数。
2.10 map():将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回;map方法接受一个函数作为参数,该函数调用时,map方法向它传入三个参数:当前成员、当前位置、数组。
注:map方法不会跳过undefined和null,但是会跳过空位。
var numbers = [1,2,3];
var result = numbers.map(function (n) {
return n+1;
});
console.log(numbers); //[1, 2, 3]
console.log(result); //[2, 3, 4]
2.11 forEach():对数组的所有成员依次执行参数函数,不返回值,只用来操作数据。forEach的用法与map方法一致,参数是一个函数,同样接受三个参数:当前值、当前位置、数组。forEach方法不会跳过undefined和null,但会跳过空位。
2.12 filter():用于过滤数组成员,满足条件的成员组成一个新数组返回。它的参数是一个函数,同样接受三个参数:当前值,当前位置、数组。所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。
var arr = [1,2,3,4,5,6,7,8,9];
var result = arr.filter(function(elem) {
return (elem >5);
});
console.log(result); //[6, 7, 8, 9]
2.13 some():用于判断数组成员是否符合某种条件,接受一个函数作为参数,所有数组成员依次执行该函数,接受三个参数:当前值、当前位置、数组;然后返回一个布尔值。some
方法是只要一个成员的返回值是true
,则整个some
方法的返回值就是true
,否则返回false
。
every():用于判断数组成员是否符合某种条件,接受一个函数作为参数,所有数组成员依次执行该函数,接受三个参数:当前值、当前位置、数组;然后返回一个布尔值。every
方法是所有成员的返回值都是true
,整个every
方法才返回true
,否则返回false
。
注:对于空数组,some方法返回false,every方法返回true,回调函数都不会执行。
2.14 reduce()、reduceRight(): 用于依次处理数组的每个成员,最终累计为一个值。reduce是从左到右处理,reduceRight是从右到左。 reduce方法和reduceRight方法的第一个参数都是一个函数,该函数接受四个参数:累计变量,默认为数组的第一个成员;当前变量,默认为数组的第二个成员;当前位置(从0开始);原数组。如果要对累积变量指定初值,可以把它放在reduce方法和reduceRight方法的第二个参数。
var arr = [1,2,3,4,5,6,7,8,9];
var result = arr.reduce(function(elem_1,elem_2) {
return elem_1+elem_2;
})
console.log(result); //45
//初始值为5
var resultInit = arr.reduce(function(a,b) {
return a+b;
},5)
console.log(resultInit); //50
2.15 indexOf():返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。该方法还可以接受第二个参数,表示搜索的开始位置。
lastIndexOf():返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1。