JavaScript-数组(常用)
| forEach | ES5新增的方法,用来遍历数组,没有返回值 | 默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。 |
| filter | (过滤)回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回 | 默认有三个参数(同forEach) |
| every | 判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。 | |
| map | 回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回。 | 默认有三个参数(同forEach) |
| some | 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。 |
一、every
let data = [{id: 1, check: true},{id: 2, check: false},{id: 3, check: false},{id: 4, check: true}];
let selectAll = data.every(item=>{
return item.check;
});
console.log("every函数:"+selectAll) // data中每一项都为true才会返回true
二、filter
let data = [{id: 1, check: true},{id: 2, check: false},{id: 3, check: false},{id: 4, check: true}];
let newData = data.filter(item=>{
return item.check;
});
// [ { id: 1, check: true }, { id: 4, check: true } ]
console.log(newData); // 返回true的项组成的数组
三、forEach
let num = 0; data.forEach(item=>{ if(item.id == 1 || item.id == 3) { return; } num++; }); console.log(num) // 2
四、map
var arr = [1,2,3,4,5,6]; var filterArr = arr.map((item=>{ return item+=1; })); // [ 2, 3, 4, 5, 6, 7 ] console.log(filterArr)
五、some
let hasCheck = data.some(item=>{ return item.check; }); console.log("some函数:"+hasCheck); // data中任一一项返回true则会返回true
六、
//demo:使用reduce计算数组中所有数据的和 var arr = [10,20,30,40,50]; var sum = arr.reduce(function(prev,now,index,self){ return prev + now; }) console.log(sum); //150 // 回调函数的最后一次return的结果被返回到reduce方法的身上 //demo:使用reduce计算数组中所有数据的和 var arr = [10,20,30,40,50]; var sum = arr.reduce(function(prev,now,index,self){ return prev + now; }, 8) console.log(sum); //158 // 回调函数的最后一次return的结果被返回到reduce方法的身上 // 因为reduce有第二个参数initial,在第一次执行时被计算,所以最终结果被加上8
七、IndexOf
功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找
var str = ["h","e","l","l","o"]; console.log(str.indexOf("l")); //2
八、valueOf
var str = [1,2,3]; console.log(str.valueOf()); //[1,2,3] console.log(str); //[1,2,3] //为了证明返回的是数组自身 console.log(str.valueOf() == str); //true

浙公网安备 33010602011771号