常用数组函数使用(filter、map、forEach、find/findIndex)

数组中的函数使用

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

猜你喜欢

转载自blog.csdn.net/weixin_53737663/article/details/127019240