[英]How to merge nested arrays into a new object?
我正在努力將嵌套的 arrays 合並到一個新的 object 中。
我有一個包含嵌套對象的數組。 對象包含一個數組。 現在我想將該數組的條目合並到一個新的 object 並為其分配一個值。 例如“假”。 請參閱示例。
當前結構:
const arr = [
{
baa: "some",
foo: ["1", "2", "3"],
},
{
baa: "some",
foo: [
"4",
"5",
"6",
"7",
],
},
]
目標結構:將“foo”條目合並到 object 並賦值。
const obj = {
1: false,
2: false,
3: false,
4: false,
5: false,
6: false,
7: false,
};
更具聲明性的答案:
const arr = [ { baa: "some", foo: ["1", "2", "3"], }, { baa: "some", foo: ["4", "5", "6", "7"], }, ]; // Build `obj` from `arr` const obj = Object.fromEntries( arr.map(val => val.foo).flat().map( key => [key, false] ) ) console.log(obj)
旁注:與 IE11 等舊版瀏覽器不兼容,請參閱此處的報道: https://caniuse.com/mdn-javascript_builtins_object_fromentries
雖然其他答案是正確的,但我發現它們比簡單的雙循環更難閱讀。
let result = {}
for(let obj of arr){
for(let innerArrElem of obj.foo){
result[innerArrElem] = false
}}
}}
function populate(arr, value) {
return arr.reduce((acc, element) => {
element.foo.forEach((f) => acc[f] = false);
return acc;
}, {})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.