一、使用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}

最新文章

  1. rinetd
  2. meta标签用法总结
  3. 《zw版·Halcon入门教程与内置demo》
  4. iOS检测用户截屏并获取所截图片
  5. SAP 采购订单行项目中科目分配被隐藏,发现行项目设置中显示字段长度为0
  6. js execCommand
  7. 机器学习(一) 从一个R语言案例学线性回归
  8. [转]关于int整形变量占有字节问题
  9. C#部分---利用arraylist集合做滚动抽奖;
  10. http://jingyan.baidu.com/article/08b6a591f0fafc14a9092275.html
  11. Android异常:异步任务导致的窗口句柄泄漏问题
  12. Oracle 专用模式(DEDICATED) 和 共享模式(SHARE) (转)
  13. Facial Landmark Detection
  14. agnentX学习存在疑问?
  15. 记录项目版本升级angular4 ~ angular5
  16. SSM-SpringMVC-03:SpringMVC执行流程一张有意思的图
  17. 自定义switchButton
  18. python爬虫,使用urllib2库报错
  19. idea设置代码块
  20. Nodejs----单点登录

热门文章

  1. Linux_multipath
  2. java基础---设计模式(2)
  3. C预处理跨平台
  4. ES6 let const关键字
  5. UBUNTU 16.04 LTS SERVER 手动升级 MariaDB 到最新版 10.2
  6. 使用JavaScript输出带有边框的乘法表
  7. Python - if 条件控制
  8. jquery设置下拉框selected不起作用
  9. Scrapy入门到放弃04:下载器中间件,让爬虫更完美
  10. vulnhub-DC:7靶机渗透记录