数组中的函数使用
1 、filter:过滤
要求必须返回Boolean类型,可以传递3个参数,filter(item,index,arr)分别是(数组中的每个值item,每个值对应的下标index,整个数组arr),最后返回一个新数组
var nums = [10, 5, 11, 100, 55]
//[10, 5, 11, 100, 55]
//10 => true => 会被放到newNums
//5 => false => 不会被放到newNums
//11 => false => 不会被放到newNums
//100 => true => 会被放到newNums
//55 => false => 不会被放到newNums
var newNums = nums.filter(function(item) {
return item % 2 === 0 // 偶数
})
console.log(newNums) //[10,100]
2 、map:映射
可以对原数组做一些改变。最后会返回一个新数组
var nums = [10, 5, 11, 100, 55]
var newNums2 = nums.map(function(item) {
return item * 10
})
console.log(newNums2) //[100,50,110,1000,550]
3、 forEach:迭代(相当于遍历),没有返回值
var nums = [10, 5, 11, 100, 55]
nums.forEach(function(item) {
console.log(item)
})
//打印结果
//10
//5
//11
//100
//55
4、 find:找到某个对象的值
findIndex找到某个对象的值对应的索引值(下标)
var friends = [
{ name: "why", age: 18 },
{ name: "kobe", age: 40 },
{ name: "james", age: 35 },
{ name: "curry", age: 30 },
];
var findFriend = friends.find(function (item) {
return item.name === "james";
});
console.log(findFriend); //{ name: 'james', age: 35 }
var friendIndex = friends.findIndex(function (item) {
return item.name === "james";
});
console.log(friendIndex); //2
5、 reduce:累加
可以传2个参数,reduce(prevValue,item),分别是(上一次调用此方法返回的值previousValue,这一次传入的值item) ,previousValue在第一次调用时没有上一次的值,可以自己定义为0(initialValue)
// prevValue: 0, item: 10
// prevValue: 10, item: 5
// prevValue: 15, item: 11
var nums = [10, 5, 11, 100, 55]
var total = nums.reduce(function (prevValue, item) {
return prevValue + item;
}, 0);
console.log(total); //181