簡體   English   中英

如何根據對象屬性創建新對象

[英]How to create new object based on object properties

我試圖找出一種方法來創建一個匯總統計數據集合的新對象。

這個新對象的信息來自以下形式的數組

在此處輸入圖片說明

現在,我需要將這些數據存儲在一個新對象中,例如:

{
   blocks: [41, 22, 3, 4],
   delivered: [23, 11, 2, 1]
}

並像訪問它一樣 object.blocks[0], object.delivered[0], object.blocks 1 , object.delivered 1 ... 等等

其中“塊”,“已交付”應自動創建。

這甚至可能嗎?

在我的頭頂上,我想不出一個內置函數來將對象數組轉換為一個更好的術語“數組對象”。 但是執行此操作的 javascript 代碼並不是很困難:

function arrayOfObjToObjOfArrays(arr) {
  toRet = { blocks: [], delivered: [] };
  for(var i = 0; i < arr.length; ++i) {
    var obj = arr[i];
    for(var k in obj) {
      if(k === 'blocks' || k === 'delivered') { 
        toRet[k].push(obj[k]); 
      }
    }
  }
  return toRet;
}

這尚未經過測試,但應該足以讓您入門。

這只是遍歷數組並挑選出值,然后將它們存儲在某處的問題。

例如:

var result = {};
arr.forEach(function (obj) {
    Object.keys(obj).forEach(function (key) {
        if (key === "blocks" || key === "delivered") {
            if ( ! Array.isArray(result[key])) {
                result[key] = [];
            }
            result[key].push(obj[key]);
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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