Javascript JQuery-如果相同id,则仅显示一个,并在周内添加它
我有以下样本数据:Javascript JQuery-如果相同id,则仅显示一个,并在周内添加它,javascript,jquery,Javascript,Jquery,我有以下样本数据: [{"id":"2", "weeks":2}, {"id":"2", "weeks":4}, {"id":3, "weeks":7}] 我想,我只会显示一个,如果id是多余的,但加上所有的星期,该id的 我的尝试: var data = [{"id":"2", "weeks":2}, {"id":"2", "weeks":4}, {"id":3, "weeks":7}]; var weeks = 0; for (var i=0; i<data.length; i++)
[{"id":"2", "weeks":2}, {"id":"2", "weeks":4}, {"id":3, "weeks":7}]
我想,我只会显示一个,如果id是多余的,但加上所有的星期,该id的
我的尝试:
var data = [{"id":"2", "weeks":2}, {"id":"2", "weeks":4}, {"id":3, "weeks":7}];
var weeks = 0;
for (var i=0; i<data.length; i++){
weeks += data[i].weeks;
}
您可以将array#reduce()
与Object.values()一起使用。根据id
对数据进行分组,并添加weeks
,以便在对象中重复id
。使用object.values()
从对象中获取值
const data=[{“id”:“2”,“weeks”:2},{“id”:“2”,“weeks”:4},{“id”:3,“weeks”:7}],
结果=Object.values(data.reduce((r,{id,weeks})=>{
r[id]=r[id]|{id,周数:0};
r[id]。周数+=周数;
返回r;
},{}));
控制台日志(结果)代码>您可以结合或基于具有相同id的重复元素的数量
代码:
const data=[{“id”:“2”,“周”:2},{“id”:“2”,“周”:4},{“id”:3,“周”:7}];
常量结果=数据
.减少((a,c)=>{
a、 温度[c.id]=++a.temp[c.id]| 1;
a、 温度[c.id]==1
?a.阵列推送(c)
:a.array.find(item=>item.id==a.temp[c.id]).weeks+=c.weeks;
返回a;
},{temp:{},数组:[]})
.阵列;
控制台日志(结果)代码>
[{"id":"2", "weeks":6}, {"id":3, "weeks":7}]