如何为数组中的所有项目设置值?
例如,我有一个数组:["chin","eng","maths"]
我想将其设置为{"chin" :true,"eng":true,"maths":true}
并以小孩子的身份推向火力基地。
答案 0 :(得分:4)
一种可能的方法是像这样使用Array.reduce():
const input = ["chin", "eng", "maths"];
let obj = input.reduce((acc, item) => (acc[item] = true, acc), {});
console.log(obj);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
或者,您可以使用spreading
,但会降低性能:
let obj = input.reduce((acc, item) => ({...acc, [item]: true}), {});
答案 1 :(得分:1)
最简单的方法是使用for...of
遍历数组并将每个键添加到对象:
const keys = ["chin", "eng", "maths"],
output = {};
for (const key of keys) {
output[key] = true;
}
console.log(output)
另一个选择是使用map
创建键值对条目的2D数组。然后使用Object.fromEntries()
创建对象
const keys = ["chin","eng","maths"]
const output = Object.fromEntries(keys.map(k => [k, true]))
console.log(output)