簡體   English   中英

將鍵數組轉換為鍵值對對象

[英]Convert an array of keys into an object of key-value pairs

我知道如何轉換這個:

const keys = [1, 2, 3];

對此:

[{key: 1, val: "q"}, {key: 2, val: "w"}, {key: 3, val: "e"}]

使用單個映射語句:

keys.map((x, i) => ({key: x, val: "qwe".charAt(i)}));

但我實際上想得到這個:

{1: "q", 2: "w", 3: "e"}

是否有一種巧妙的方法可以在與上述類似的單個語句中執行此操作?

您可以使用減少

keys.reduce((accumulator, value, index) => { accumulator[index] = "qwe".charAt(index); return accumulator; }, {})

啊,明白了:

const objects = Object.assign({}, ...keys.map((x, i) => ({[x]: "qwe".charAt(i)})));

盡管我很樂意聽到其他建議以及有關此建議的任何說明...

您可以使用 reduce 和空對象作為累加器的初始值並在其上插入屬性值對:

 const keys = [1, 2, 3]; let result = keys.reduce((obj, key, idx) => { obj[key] = 'qwe'[idx]; return obj }, {}); console.log(result)

這是我的解決方案。

 const keys = [1, 2, 3]; const vals = "qwe"; const result = keys.reduce((prev, cur, idx) => ({ ...prev, [cur]: vals[idx] }), {});

暫無
暫無

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

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