簡體   English   中英

刪除 JavaScript object 數組中的重復項並對條目求和

[英]Remove duplicates in a JavaScript object array and sum the entries

我有一個 object 有兩個屬性: xy ,分別是 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值,只留下一個xy值對,如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM