forEach | ES5新增的方法,用来遍历数组,没有返回值 | 默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。 |
filter | (过滤)回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回 | 默认有三个参数(同forEach) |
every | 判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。 | |
map | 回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回。 | 默认有三个参数(同forEach) |
some | 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。 |
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
六、reduce 功能:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。 参数:reduce()接收一个或两个参数:第一个是回调函数,表示在数组的每一项上调用的函数;第二个参数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。reduce(callback,initial); callback默认有四个参数,分别为prev,now,index,self。
//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,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找
var str = ["h","e","l","l","o"]; console.log(str.indexOf("l")); //2
八、valueOf
功能:返回数组的原始值(一般情况下其实就是数组自身),一般由js在后台调用,并不显式的出现在代码中
var str = [1,2,3]; console.log(str.valueOf()); //[1,2,3] console.log(str); //[1,2,3] //为了证明返回的是数组自身 console.log(str.valueOf() == str); //true