reduce计算数组中每个元素出现的次数 数组去重的几种方式 将多维数组转化为一维
2024-08-27 13:25:49
// 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当前元素被循环的元素的索引
最新文章
- MySQL 5.6 记录 SQL 语句与慢查询
- No package mysql-server available.
- <;2016-1-28>;
- 遇到的sql关键字
- display:none 与 opacity:0
- Solution to “VirtualBox can&#39;t operate in VMX root mode” error in Windows 7
- MyBatis插入多条
- Firmware综述
- 规范化ProjectEuler
- JSP 内置对象的四种属性范围
- bzoj 1191: [HNOI2006]超级英雄Hero 并查集 || 匈牙利算法
- 在android画面切换时设置跟随变动的小圆圈
- 这些屌炸天的创业者为何对投资人说NO
- 分酒问题(DFS解法)
- c#中可变参数params关键字学习
- ThreadPoolExecutor代码解析
- VPS采用的几种常见技术(OVZ、Xen、KVM)介绍与对比
- Windows 2003 下安装 SQL Server 2008 Express
- 使用Code First建模自引用关系笔记
- NOIP2018退役总结
热门文章
- Pwn-level4
- day53_9_17 django数据库表关联,路由和视图
- luoguP3306 [SDOI2013]随机数生成器
- 腾讯云短信服务+Node.js给手机发送验证码
- ASP.NET开发实战——(十二)ASP.NET MVC 与数据库之Entity Framework Migrations
- 【CF464E】The Classic Problem(主席树+最短路)
- json去除value值的前后空格
- [技术]SYZOJ 实现网站与评测端分离
- JeeSite | 数据权限应用
- 通俗的讲,就是高层模块定义接口,低层模块负责实现。 Bob Martins对DIP的定义: 高层模块不应依赖于低层模块,两者应该依赖于抽象。 抽象不不应该依赖于实现,实现应该依赖于抽象。