簡體   English   中英

如何將對象數組映射到鍵值?

[英]How to map array of objects to key-values?

在JS中,我有一個數組A = [{k:"a",v:3},{k:"b",v:4}]由對象組成,定義了鍵值。 我想生成數組B

let B = 
((A)=>{
    let B=[];
    for(let i of A)
        B[i.k]=i.v;
    return B;
})(A);

這樣就將A的對象鍵k映射到B的鍵,並將值v映射為其值。 通過數組mapreduce函數更容易實現嗎? 您能幫我正確的語法嗎? 因此,B(對於我們的示例)將是:

let B = [];
B["a"]=3;
B["b"]=4;
console.log( B );
[ a: 3, b: 4 ] 

您可以將Object.fromEntries與鍵/值對的映射數組一起使用。

 var array = [{ k: "a", v: 3 }, { k: "b", v: 4 }], object = Object.fromEntries(array.map(({ k, v }) => [k, v])); console.log(object); 

您可以刪除IIFE並使用

const B = {};
for (const {k, v} of A)
    B[k] = v;

reduce解決方案也是可能的,但不夠簡潔:

const B = A.reduce((acc, {k, v}) => {
    acc[k] = v;
    return acc;
}, {});

暫無
暫無

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

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