hi, 欢迎访问我的博客

reduce使用技巧

一、使用reduce同时执行map(循环)和filter(过滤)

例如,将数组中的项的值加倍,然后只选择那些大于50的项

const numbers = [10, 20, 30, 40];
const doubledOver50 = numbers.reduce((finalList, num) => {
  
  num = num * 2; //(map)
  
  //filter number > 50
  if (num > 50) {
    finalList.push(num);
  }
  return finalList;
}, []);
doubledOver50; // [60, 80]

二、计算重复数组项或将数组转换为对象

var cars = [''宝马','奔驰','奔驰','特斯拉','宝马','丰田'];
var carsObj = cars.reduce(function(obj,name){ 
   obj [name] = obj [name]?++ obj [name]:1; 
  return obj; 
},{});
carsObj; // => {宝马:2,奔驰:2,特斯拉:1,丰田:1}

 

posted @ 2019-04-21 22:52  打静爵  阅读(299)  评论(0编辑  收藏  举报