1,concat()
连接数组 直接返回新数组 原数组无变化
var arr1=[1,2,3]
undefined
arr1.concat(4,5,6)
(6) [1, 2, 3, 4, 5, 6]
arr1
(3) [1, 2, 3]
2,slice()
查看数组的某一部分内容 两个参数表示开始和结束索引 含头不含尾 返回数组的一部分成员 不会修改原数组
var arr=[1,2,3,4,5,6]
undefined
arr.slice(0,2)
(2) [1, 2]
arr
(6) [1, 2, 3, 4, 5, 6]
3,splice()
剪切数组的一部分成员 会修改原数组
第一个参数表示要开始截取的索引位置 可以传一个负数 表示从末尾开始计数 但还是向右侧截取成员
第二个参数表示要截取的成员的个数
第三个参数表示要插入到截取的位置的新的成员
返回截取的成员
var arr=[1,2,3,4,5,6,,7,8,9]
undefined
arr.splice(2,1,'sukla')
[3]
arr
(10) [1, 2, "sukla", 4, 5, 6, empty × 1, 7, 8, 9]
如果只有一个参数的话 表示从这个位置以后的成员全部截取
arr.splice(2)
(8) ["sukla", 4, 5, 6, empty × 1, 7, 8, 9]
arr
(2) [1, 2]
4,indexOf()
查看成员中第一个匹配的成员的索引
如果没有一个成员匹配的话 就返回 -1
var arr=[1,3,5,7,9]
undefined
arr.indexOf(4)
-1
arr.indexOf(5)
2
5,lastIndexOf()
从右侧开始 查看第一个匹配的成员的索引
没匹配到的话 返回 -1
var arr=[1,1,1,1,,1]
undefined
arr.lastIndexOf(1)
5
6,every()
接受一个函数作为参数
数组的成员依次执行这个函数
只有当所有成员的执行结果都是 true 的时候 这个方法返回 true
var arr=[1,2,3,4,5,6]
undefined
arr.every(function(a){return a>0})
true
arr.every(function(a){return a>1})
false
7,some()
接受一个函数作为参数
数组的成员一次执行这个函数
只要有一个成员的执行结果是 true 那么这个方法就返回 true
var arr=[1,2,3,4,5,6]
undefined
arr.some(function(a){return a>1})
true
arr.some(function(a){return a>0})
true
8,filter()
接受一个函数作为参数
数组的成员一次执行函数
会将所有参与函数之后返回 true 的成员组成一个新的数组作为 这个方法的返回值
var arr=[1,2,3,4,5,6]
undefined
arr.filter(function(a){return a%2==0})
(3) [2, 4, 6]
arr
(6) [1, 2, 3, 4, 5, 6]
9,forEach()
接受一个函数作为参数
数组的成员一次执行这个函数
没有返回值
var arr=[1,2,3,4,,5,6]
undefined
arr.forEach(function(a){return a>0})
undefined
10,map()
接受一个函数作为参数
数组的成员一次执行这个函数
然后将返回值组成一个新的数组作为这个方法的返回值
var arr=[1,2,3,4,9,5,6]
undefined
arr.map(function(a){return a%2})
(7) [1, 0, 1, 0, 1, 1, 0]
arr
(7) [1, 2, 3, 4, 9, 5, 6]
11,reduce()
归纳方法
接受一个函数作为参数
这个函数有4个参数
第一个参数表示上一次归纳的结果
第二个参数表示当前的成员
第三个参数表示当前的成员的索引
第四个参数表示当前数组本身
var arr=[0,1,2,3,4,5,6,7,8,9]
undefined
arr.reduce(function(a,b,c,d){console.log(a,b,c,d);return a+b;})
VM960:1 0 1 1 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 1 2 2 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 3 3 3 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 6 4 4 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 10 5 5 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 15 6 6 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 21 7 7 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 28 8 8 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM960:1 36 9 9 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
45
12,reduceRight()
自右向左归纳方法
接受一个函数作为参数
这个函数有四个参数 分别表示上一次归纳的结果 当前的成员 当前的成员的索引 当前的数组
var arr=[0,1,2,3,4,5,6,7,8,9]
undefined
arr.reduceRight(function(a,b,c,d){console.log(a,b,c,d);return a+b;})
VM980:1 9 8 8 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 17 7 7 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 24 6 6 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 30 5 5 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 35 4 4 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 39 3 3 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 42 2 2 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 44 1 1 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
VM980:1 45 0 0 (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
45