转载于:前进中的蜗牛

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 计算对象数组中某个属性值重复出现的个数相关推荐

  1. js计算对象数组中某个属性合计

    js 计算对象数组中某个属性合计 countTotal调用示例: let arr = [{id: 0, price: 199.88},{id: 1, price: 299.88},{id: 2, pr ...

  2. js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...

    1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...

  3. es6 数组找最大值_在对象数组中查找属性的最大值

    我正在寻找一种非常快速,干净且有效的方法来获取以下JSON切片中的最大" y"值: [ { "x": "8/11/2009", " ...

  4. js获取对象数组中的id集合

    js获取对象数组中的id集合 const ids = Array.from(this.checkList,({ id }) => id); // ["16921C72E0C64002& ...

  5. 查找对象数组中某属性的最大最小值

    查找对象数组中某属性的最大最小值的快捷方法 例如要查找array数组中对象的value属性的最大值,这里记为maxVal var array=[{"index_id": 119,& ...

  6. js 删除对象数组中指定元素

    操作对象数组中指定条件的元素: 例: let arr = [{createDate: "2021-03-20",id: 1 }, {createDate: "2021-0 ...

  7. 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 ...

  8. js判断对象数组中是否存在某个对象

    1. 如果要判断数组中是否存在某个元素的话很好判断,直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1 var arr=[1,2,3,4] arr.indexOf(3) // 2 ar ...

  9. java如何获取数组中的属性值_【java】查找对象数组中某属性的最大值, 然后返回该项的其他属性值...

    有一个数组,里面装的都是对象. var array=[ { "id": 52354541, "name": "比率", "valu ...

最新文章

  1. 算法漫画:什么是 “哈夫曼树” ?
  2. [鸟哥linux视频教程整理]04_02_Linux 权限及权限管理
  3. 如何恢复Linux下被误删除的文件以及如何防止文件被删除
  4. es-head 删除INDEX 创建mapping
  5. vlf 用法_什么是SQL虚拟日志文件(又名SQL Server VLF)?
  6. python编写财务软件_python 与财务
  7. MessageDigest(加密)
  8. 云通讯im怎么做php回调,腾讯云IM接入案列(一)
  9. ES 索引mapping之keyword;term查询添加keyword查询;更改mapping keyword类型
  10. InstallShield vs2015 的安装与激活
  11. 日语输入法使用技巧!
  12. PS纳米纤维膜 聚苯乙烯 纤维直径500-2000nm
  13. 【最小费用最大流】知识点讲解
  14. 【C++】之内联函数(inline)
  15. 梯度下降法,二维空间三维空间 代码实现
  16. 负重前行的婚纱线上路 - i天下网商-最具深度的电商知识媒体
  17. 一个印度人写的VC串口类CSerialCom(有串口基础介绍)
  18. Master—Theorem 主定理的证明和使用
  19. ie 和火狐兼容问题
  20. 电脑双核CPU具体是什么意思?

热门文章

  1. matlab评估边缘检测性能,【模糊推理】模糊逻辑图像边缘检测,原理+matlab代码~...
  2. 【Java】NIO中Selector的select方法源码分析
  3. C#枚举(Enum)小结
  4. 在spring中该如何使用DTO,以及DTO和Entity的关系
  5. 标准C程序设计七---46
  6. RxSwift 系列(一)
  7. 每天一个linux命令(1):ln 命令
  8. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
  9. 数据库高可用架构 转载
  10. adodb.stream对象的方法/属性