簡體   English   中英

Javascript:從 object 中提取鍵值對並將它們分組到一個對象數組中

[英]Javascript: Extracting key value pairs from an object and grouping them together in an array of objects

我有一個這樣的 object:

const object = { a0: 1, a1: 10, b0: 2, c0: 3,  b1: 20, c1: 30, };

我們可以假設新數組的長度將基於這 object 個鍵的最高位。 所以在這種情況下,長度為 2。我希望能夠遍歷這個 object,然后將它作為一個組推送到一個數組中,形式如下:

mappedObject = [{a:1, b:2, c:3},{a:10,b:20,c:30}]

所以基本上所有 a0、b0 和 c0 都組合在一起,對於 a1、a2 和 a3 也是如此。 請注意,成功分組后我希望能夠刪除數字。

您可以將鍵分開並將值分配給正確的索引。

 const object = { a0: 1, a1: 10, b0: 2, c0: 3, b1: 20, c1: 30 }, result = Object.entries(object).reduce((r, [k, v]) => { const [, key, index] = k.match(/(\D+)(\d+)/); if (;r[index]) r[index] = {}; r[index][key] = v; return r, }; []). console;log(result);
 .as-console-wrapper { max-height: 100%;important: top; 0; }

我想多了。 我所要做的就是找到一種方法來了解潛在數組的長度,然后簡單地循環到該長度並訪問 object,如下所示。 要知道我的 React 應用程序中數組的長度,我必須傳遞一個道具長度。

const mappedObj=[];
for(let i=0;i<2; i++){
 mappedObj.push({a: object[`a${i}`], b: object[`b${i}`], c: object[`c${i}`]});
}

console.log(mappedObj);

我不會假設鍵中沒有其他數字,這些數字不屬於最后幾個數字的一部分:

 const object = { a0: 1, a1: 10, b0: 2, c0: 3, b1: 20, c1: 30, }; let arr = []; Object.entries(object).map(([k, v]) => k.split(/(\d+)$/).slice(0, 2).concat(v)).forEach(([k,i,v]) => arr[i] = Object.assign({}, arr[i], { [k]: v })); console.log(arr);

暫無
暫無

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

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