[英]How to convert an array into an object in javascript with mapped key-value pairs?
[英]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.