在任意位置添加或删除元素(splice)
var arr = [1,2,3,4,5,6];
var newarr = arr.splice(2,2);
console.log(arr)
console.log(newarr)
var arr = [1,2,3,4,5,6]
var newarr = arr.splice(2,0,1,2,3)
console.log(arr)
console.log(newarr)
var arr = [1,2,3,4,5,6]
var newarr = arr.splice(2,1,1,2,3)
console.log(arr)
console.log(newarr)
数组合并concat
var arr1 = [1,2,3]
var arr2 = [4,5,6]
var arr = arr1.concat(arr2)
console.log(arr)
迭代器函数
every
- 会遍历数组中每个元素,如果每个元素都符合条件,也就是都返回true,结果为true,只要有一个为false,结果就为false
- 不会改变原数组
- 判断一个数组里面的元素是否都是偶数
var arr1 = [1,2,3,4,5]
var arr2 = [2,4,6]
function isEven(arr){
return arr.every(item => item % 2 ===0);
}
console.log('isEven',isEven(arr1))
console.log('isEven',isEven(arr2))
some
- 会遍历数组中每个元素,只要数组中有1个元素符合条件,结果为true,只有数组全部都是false,结果才为false
- 不会改变原数组
- 判断一个数组里面的元素是否都大于4
var arr1 = [1,2,3,4,5,6]
var arr2 = [1,2,3];
function fn(arr){
return arr.some(item => item>4)
}
console.log(fn(arr1))
console.log(fn(arr2))
forEach
map
filter
var arr = [1,2,3,4,5]
var newarr = arr.filter(item => item> 2)
console.log(newarr)
reduce
- 累加器,有4个参数
- 第1个参数是每次计算的上一个结果,第2个参数是当前值,第3个参数是索引,第4个参数是原数组。第3和第4个参数可省略。
var arr = [1,2,3]
var newarr = arr.reduce((prev,curr,index,arr) => {
return prev+curr
})
console.log(newarr)
for...of迭代
var arr = [1,2,3,4,5]
for(var n of arr){
console.log(n%2 ===0 ? 'even':'odd')
}
from方法
var arr = [1,2,3]
var newarr = Array.from(arr,x=>x%2===0)
console.log(newarr)
reverse反序
var arr = [1,2,3]
var newarr = arr.reverse()
sort排序
var arr = [1,2,3,10,11]
var newarr = arr.sort();
var arr = [1,2,3,10,11]
var newarr = arr.sort((a,b) => a-b);
indexOf和lastIndexOf
- indexOf:返回与参数匹配的第一个元素的索引
- lastIndexOf:返回与参数匹配的最后一个元素的索引
find和findIndex
- find:返回数组中满足条件的第一个元素,如果没有,则返回undefined
- findIndex:返回数组中满足条件的第一个元素的索引,如果没有,返回-1
var arr = [1,2,3,4,5,6]
var it = arr.find(item => item>3)
var indexVal = arr.findIndex(item => item>3)
console.log(it)
console.log(indexVal)
includes
- 如果数组存在某个元素,includes方法返回true,否则返回false
var arr = [1,2,3,4,5]
var a = arr.includes(1)
var b = arr.includes(8)
console.log(a)
console.log(b)