js 计算对象数组中某个属性值重复出现的个数
转载于:前进中的蜗牛
let list = [{name:"1000积分",serialNumber:6},{name:"500积分",serialNumber:7},{name:"50积分",serialNumber:8},{name:"50积分",serialNumber:8},{name:"50积分",serialNumber:8}
];//怎么将list转换为下面格式:
[{title:"1000积分",num:1},{title:"500积分",num:1}, {title:"50积分",num:3}
]//num:serialNumber相同的元素重复次数
1. 首先要先获取所有需要计算的属性值
//先根据所有的title组合成一个数组
let titleList = list.map(item => {return item.name
})//获得["1000积分", "500积分", "50积分", "50积分", "50积分"]
2. 有两种方法将上面返回的结果变成:{1000积分: 1, 500积分: 1, 50积分: 3}
(1)常规的方法:使用 for 循环 ;
function getRepeatNum(){ var obj = {}; for(var i= 0, l = titleList.length; i< l; i++){ var item = arr[i]; obj[item] = (obj[item] +1 ) || 1; } return obj;
}
(2)使用 reduce(),接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。支持IE9+
//用reduce时:
//reduce:计算数组元素相加后的总和
//reduce方法接受两个参数,第一个是函数,第二个是初始值
function getRepeatNum(){ return titleList.reduce(function(prev,next){ prev[next] = (prev[next] + 1) || 1; return prev; },{});
} console.log(getRepeatNum());//获得{1000积分: 1, 500积分: 1, 50积分: 3}
3. 得到最终结果
let myObj = this.getRepeatNum2(titleList),winningList = [];for(let i in myObj){let obj = {title:i,num:myObj[i]}winningList.push(obj)
}
console.log(winningList)
//[{"title":"1000积分","num":1},{"title":"500积分","num":1},{"title":"50积分","num":3}]
js 计算对象数组中某个属性值重复出现的个数相关推荐
- js计算对象数组中某个属性合计
js 计算对象数组中某个属性合计 countTotal调用示例: let arr = [{id: 0, price: 199.88},{id: 1, price: 299.88},{id: 2, pr ...
- js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...
1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...
- es6 数组找最大值_在对象数组中查找属性的最大值
我正在寻找一种非常快速,干净且有效的方法来获取以下JSON切片中的最大" y"值: [ { "x": "8/11/2009", " ...
- js获取对象数组中的id集合
js获取对象数组中的id集合 const ids = Array.from(this.checkList,({ id }) => id); // ["16921C72E0C64002& ...
- 查找对象数组中某属性的最大最小值
查找对象数组中某属性的最大最小值的快捷方法 例如要查找array数组中对象的value属性的最大值,这里记为maxVal var array=[{"index_id": 119,& ...
- js 删除对象数组中指定元素
操作对象数组中指定条件的元素: 例: let arr = [{createDate: "2021-03-20",id: 1 }, {createDate: "2021-0 ...
- js修改对象数组中其中某一项属性值
<script>// 只把a中b的值,替换成f中d的值,c值不变var a = [{b:1,c:5},{b:2,c:6},{b:3,c:7},{b:4,c:8},]var f =[{b:1 ...
- js判断对象数组中是否存在某个对象
1. 如果要判断数组中是否存在某个元素的话很好判断,直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1 var arr=[1,2,3,4] arr.indexOf(3) // 2 ar ...
- java如何获取数组中的属性值_【java】查找对象数组中某属性的最大值, 然后返回该项的其他属性值...
有一个数组,里面装的都是对象. var array=[ { "id": 52354541, "name": "比率", "valu ...
最新文章
- 算法漫画:什么是 “哈夫曼树” ?
- [鸟哥linux视频教程整理]04_02_Linux 权限及权限管理
- 如何恢复Linux下被误删除的文件以及如何防止文件被删除
- es-head 删除INDEX 创建mapping
- vlf 用法_什么是SQL虚拟日志文件(又名SQL Server VLF)?
- python编写财务软件_python 与财务
- MessageDigest(加密)
- 云通讯im怎么做php回调,腾讯云IM接入案列(一)
- ES 索引mapping之keyword;term查询添加keyword查询;更改mapping keyword类型
- InstallShield vs2015 的安装与激活
- 日语输入法使用技巧!
- PS纳米纤维膜 聚苯乙烯 纤维直径500-2000nm
- 【最小费用最大流】知识点讲解
- 【C++】之内联函数(inline)
- 梯度下降法,二维空间三维空间 代码实现
- 负重前行的婚纱线上路 - i天下网商-最具深度的电商知识媒体
- 一个印度人写的VC串口类CSerialCom(有串口基础介绍)
- Master—Theorem 主定理的证明和使用
- ie 和火狐兼容问题
- 电脑双核CPU具体是什么意思?
热门文章
- matlab评估边缘检测性能,【模糊推理】模糊逻辑图像边缘检测,原理+matlab代码~...
- 【Java】NIO中Selector的select方法源码分析
- C#枚举(Enum)小结
- 在spring中该如何使用DTO,以及DTO和Entity的关系
- 标准C程序设计七---46
- RxSwift 系列(一)
- 每天一个linux命令(1):ln 命令
- Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
- 数据库高可用架构 转载
- adodb.stream对象的方法/属性