// js计算数组中每个元素出现的次数
// var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; // var countedNames = names.reduce(function (allNames, name) {
// if (name in allNames) {
// allNames[name]++;
// }
// else {
// allNames[name] = 1;
// }
// return allNames;
// }, {});
// console.log(countedNames) //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1} // 数组去重 Set 和 reduce 和 for循环
         //    var arr=[1,2,23,23,4,5,5];
        //    var newarr=new Set(arr); //去重
        //    console.log([...newarr]);//将伪数组转化为真实的数组 //(5) [1, 2, 23, 4, 5]
    // let arr = [1,2,3,4,4,1]
// let newArr = arr.reduce((pre,cur)=>{
// if(!pre.includes(cur)){
// return pre.concat(cur)
// }else{
// return pre
// }
// },[])
// console.log(newArr);// [1, 2, 3, 4] //将多维数组转化为一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]
      // array.reduce(function (total, currentValue, currentIndex, arr), initialValue)

        // 参数                          描述
// total 必需。初始值, 或者计算结束后的返回值。
// currentValue 必需。当前元素被循环的元素
// currentIndex 可选。当前元素被循环的元素的索引
// arr 可选。当前元素所属的数组对象。 var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
// 打印结果:
// 1 2 1
// 3 3 2
// 6 4 3
// [1, 2, 3, 4] 10 // 分析:第一次的prev 是初始值为1 ,以后的prev为返回值
// cur 当前元素被循环的元素,是下标为1的那个元素
// index当前元素被循环的元素的索引

最新文章

  1. MySQL 5.6 记录 SQL 语句与慢查询
  2. No package mysql-server available.
  3. <2016-1-28>
  4. 遇到的sql关键字
  5. display:none 与 opacity:0
  6. Solution to “VirtualBox can't operate in VMX root mode” error in Windows 7
  7. MyBatis插入多条
  8. Firmware综述
  9. 规范化ProjectEuler
  10. JSP 内置对象的四种属性范围
  11. bzoj 1191: [HNOI2006]超级英雄Hero 并查集 || 匈牙利算法
  12. 在android画面切换时设置跟随变动的小圆圈
  13. 这些屌炸天的创业者为何对投资人说NO
  14. 分酒问题(DFS解法)
  15. c#中可变参数params关键字学习
  16. ThreadPoolExecutor代码解析
  17. VPS采用的几种常见技术(OVZ、Xen、KVM)介绍与对比
  18. Windows 2003 下安装 SQL Server 2008 Express
  19. 使用Code First建模自引用关系笔记
  20. NOIP2018退役总结

热门文章

  1. Pwn-level4
  2. day53_9_17 django数据库表关联,路由和视图
  3. luoguP3306 [SDOI2013]随机数生成器
  4. 腾讯云短信服务+Node.js给手机发送验证码
  5. ASP.NET开发实战——(十二)ASP.NET MVC 与数据库之Entity Framework Migrations
  6. 【CF464E】The Classic Problem(主席树+最短路)
  7. json去除value值的前后空格
  8. [技术]SYZOJ 实现网站与评测端分离
  9. JeeSite | 数据权限应用
  10. 通俗的讲,就是高层模块定义接口,低层模块负责实现。 Bob Martins对DIP的定义: 高层模块不应依赖于低层模块,两者应该依赖于抽象。 抽象不不应该依赖于实现,实现应该依赖于抽象。