![](/img/trans.png)
[英]Recursively accessing key/value pairs of object within objects & combining them together into a flat array
[英]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.