删除JavaScript对象数组中的重复项并对条目求和
我有一个对象,它有两个属性:删除JavaScript对象数组中的重复项并对条目求和,javascript,node.js,express,plotly,Javascript,Node.js,Express,Plotly,我有一个对象,它有两个属性:x和y,分别是String和number类型 相应的(x,y)值用于在Express.js应用程序中使用Plotly绘制时间序列,x采用格式2013-10-04T22:23 现在,假设我有一个具有重复x值的对象,我需要删除重复项,只为该x值留下一个条目,并将相应的y值相加,再次只留下一个相应的y值 例如: var data = [ { x: ["2013-10-04 22:22",
x
和y
,分别是String和number类型
相应的(x,y)值用于在Express.js应用程序中使用Plotly绘制时间序列,x
采用格式2013-10-04T22:23
现在,假设我有一个具有重复x
值的对象,我需要删除重复项,只为该x
值留下一个条目,并将相应的y
值相加,再次只留下一个相应的y
值
例如:
var data = [
{
x: ["2013-10-04 22:22", "2013-10-04 22:22", "2013-10-04 22:22",
"2013-12-12 15:15"],
y: [1, 1, 1, 6]
}
];
我想对2013-10-04 22:22
x
值的y
值进行汇总,只留下一个x
值y
值对,如下所示:
data = [
{
x: ["2013-10-04 22:22",
"2013-12-12 15:15"],
y: [3, 6]
}
];
如何做到这一点?您可以创建一个函数来接收对象,并按照您想要的方式操作对象:
const obj = {
x: ["2013-10-04 22:22", "2013-10-04 22:22", "2013-10-04 22:22", "2013-12-12 15:15"],
y: [1, 1, 1, 6]
}
function removeObjDuplicates ({ x, y }) {
const occurrences = {};
for (let i = 0; i < x.length; i++) {
occurrences[x[i]] = (occurrences[x[i]] || 0) + y[i];
}
return {
x: Object.keys(occurrences),
y: Object.values(occurrences),
}
}
您可以创建一个函数来接收对象,并按照您想要的方式操纵对象:
const obj = {
x: ["2013-10-04 22:22", "2013-10-04 22:22", "2013-10-04 22:22", "2013-12-12 15:15"],
y: [1, 1, 1, 6]
}
function removeObjDuplicates ({ x, y }) {
const occurrences = {};
for (let i = 0; i < x.length; i++) {
occurrences[x[i]] = (occurrences[x[i]] || 0) + y[i];
}
return {
x: Object.keys(occurrences),
y: Object.values(occurrences),
}
}
谢谢,这就是我要找的。谢谢,这就是我要找的。