t3_*_*rry 2 javascript arrays object
说我有一个像这样的数组:
const myArray = ['HP', 'QP', 'PS'];
Run Code Online (Sandbox Code Playgroud)
我想要一个对象,其键是myArray的值,例如
{ HP: 0, QP: 0, PS: 0 }
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以一行完成以下操作:
const myObj = {};
myArray.forEach(item => myObj[item] = 0);
Run Code Online (Sandbox Code Playgroud)
尝试使用reduce:
const myArray = ['HP', 'QP', 'PS'];
const myObj = myArray.reduce((a, key) => Object.assign(a, { [key]: 0 }), {});
console.log(myObj);Run Code Online (Sandbox Code Playgroud)
在较新的环境中,您还可以使用Object.fromEntries:
const myArray = ['HP', 'QP', 'PS'];
const myObj = Object.fromEntries(myArray.map(key => [key, 0]));
console.log(myObj);Run Code Online (Sandbox Code Playgroud)
您可以将(传播语法...)映射的对象传播到一个对象中Object.assign。
var keys = ['HP', 'QP', 'PS'],
object = Object.assign(...keys.map(key => ({ [key]: 0 })));
console.log(object);Run Code Online (Sandbox Code Playgroud)