Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery-如果相同id,则仅显示一个,并在周内添加它_Javascript_Jquery - Fatal编程技术网

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}]