![](/img/trans.png)
[英]How to remove duplicates in array object and apply sum to particular key in javascript
[英]Remove duplicates in a JavaScript object array and sum the entries
我有一個 object 有兩個屬性: x
和y
,分別是 String 和 number 類型。
對應的 (x,y) 值用於 plot 時間序列,在 Express.js 應用程序中使用 Plotly ,其中x
采用格式2013-10-04T22:23
。
現在假設我有一個帶有重復x
值的 object,我需要刪除重復項,只為該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]
}
];
如何做到這一點?
您可以創建一個接收 object 的 function 並以您想要的方式操作 object:
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),
}
}
removeObjDuplicates(obj)將返回:
{
x: ["2013-10-04 22:22", "2013-12-12 15:15"],
y: [3, 6]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.