1、forEach() forEach(value,index,arr)方法从头至尾遍历数组,为每一个元素调用指定的函数。接收三个参数 value数组中的值,index是值的索引位置 arr就是数组本身
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(value, index, arr) {
console.log('value:' + value); //1,2, 3, 4, 5
console.log('index:' + index); //0,1, 2, 3, 4
console.log('arr:' + arr); //1,2,3,4,5
})
2、filter() filter(value,index,arr)方法返回的数组元素是调用的数组的一个子集。字面意思为筛选 接收三个参数 value数组中的值,index是值的索引位置 arr就是数组本身
arr = [{
istrue: false,
data: [0, 1]
}, {
istrue: false,
data: [0, 1]
}, {
istrue: false,
data: [0, 1]
}, {
istrue: true,
data: [0, 1]
}];
arr = arr.filter(function(value, index, arr) { //不对数组本身操作 需要接收
if (value.istrue == true) {
return value;
}
})
console.log(arr); // [{istrue: true,data: [0, 1]}
3、map() map(value,index,arr)方法将调用额数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。接收三个参数 value数组中的值,index是值的索引位置 arr就是数组本身
arr = [{
istrue: false,
data: [0, 1]
}, {
istrue: false,
data: [0, 1]
}];
arr.map(function(value, index, arr) { //对数组本身进行操作 不需要接收
value.istrue = true;
return value;
})
console.log(arr); // [{istrue: true,data: [0, 1],{istrue: true,data: [0, 1]}
4、every()和some() every(value,index,arr)和some(value,index,arr)方法是数组的逻辑判断,他们对数组元素应用指定的函数进行判断,返回true或false。every判断是只要条件里面都是true 才返回true,否则返回false;some 判断是只要条件里面都是false 才返回false,否则返回true
arr = [{
istrue: false,
data: [0, 1]
}, {
istrue: false,
data: [0, 1]
}];
var boolEvery = arr.every(function(value, index, arr) { //不对数组本身操作 需要接收bool
return value.istrue;
})
var boolSome = arr.some(function(value, index, arr) { //不对数组本身操作 需要接收bool
return value.istrue;
})
console.log(boolEvery) //false
console.log(boolSome) //false
4、reduce和reduceRight reduce(callbackfn,[initialValue])方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,这个初始值用于单个数组项的操作。需要注意的是,reduce方法返回值并不是数组,而是形如初始值的经过叠加处理后的操作。callbackfn(preValue,curValue,index,array)方法有四个函数:preValue: 上一次调用回调返回的值,或者是提供的初始值(initialValue)curValue: 数组中当前被处理的数组项index: 当前数组项在数组中的索引值array: 调用 reduce()方法的数组
//reduce方法最常见的场景就是叠加。
//reduceRight()方法的功能和reduce()功能是一样的,不同的是reduceRight()从数组的末尾向前将数组中的数组项做累加。
var items = [10, 120, 1000];
var reducer = function add(sumSoFar, item) {
return sumSoFar + item;
};
var total = items.reduce(reducer, 0);
console.log(total); // 1130 可以看出,reduce函数根据初始值0,不断的进行叠加,完成最简单的总和的实现。前文中也提到,reduce函数的返回结果类型和传入的初始值相同,上个实例中初始值为number类型,同理,初始值也可为object类型。
5、indexOf和lastIndexOf() indexOf()和lastIndexOf()搜索整个数组中具有给定值的元素,返回找到得第一个元素的的索引,如果没有找到则返回-1