js 中数组的几种方法:every(),some(),forEach(),filter(),map(),find(),findIndex();
这些方法接收两个参数:一是以每一项为参数运行的函数,而该函数接收三个参数:该数组的元素,元素的索引,以及对象即该数组本身;二是一个可选的作为函数运行上下文的作用域对象。
- every()方法:返回结果是一个布尔值:true or false。当数组中的所有数据都满足条件时返回结果为true,否则为false;
let num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let reslut = num.every(function(value, index, num) {
return value > 0; //true
// return value>1;//false
})
console.log(reslut);
- some()方法:该方法和every()基本一样,同样是返回布尔值,但是some()方法只需要数组中有一个元素满足条件时返回的结果就是true。
reslut = num.some((value, index, num) => value > 3);//true
// result = num.some((value, index, num) => value>10);//false
console.log(reslut);
也可以采用下面写法
// result = num.some(item=>{return item>9;})//false
result = num.some(item=>{return item>4;})//true
console.log(result);
- forEach()方法:需要一个函数作为参数,由我们创建但是不由我们调用,我们称之为回调函数。它可以传参数,浏览器遍历到的数据会作为实参形式传递进去,会传递三个参数,分别为第一个是当前正在遍历的元素,第二个是当前正在遍历的索引,第三是该遍历的对象。
num.forEach(function(value, index, num) {
console.log("value = " + value);
console.log("index = " + index);
console.log("object = " + num)
})
注意:forEach()方法对数组的每个元素执行一次提供的函数,但是该方法的返回值都是undefined。
- filter()方法:用于返回数组中符合某些条件的结果,返回的是一个数组,因此filter()方法可用于筛选
result = num.filter((value, index, element) => value > 3);
console.log(result); // [4, 5, 6, 7, 8, 9]
- map()方法:返回一个数组,适合于创建一个与原数组元素一一对应的新数组
reslut = num.map((item, index, element) => item > 1);
console.log(reslut); // [false, true, true, true, true, true, true, true, true]
reslut = num.map((item, index, element) => item * 2);
console.log(reslut); //[2, 4, 6, 8, 10, 12, 14, 16, 18]
- find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined
let arr = [0, 0, 99, 1, 2, 3, 4, 56, 6];
let result;
result = arr.find((element) => (
element == 4));//4
result = arr.find(function(element) {
return element == 990;//undefined
})
- findIndex()返回索引值,如果没有符合条件的元素则返回-1
result = arr.findIndex(item => item == 56);//7
console.log(result);