如何使用 reduce() 构建对象而不循环多次迭代
How to us reduce() to build an object without cycling through multiple iterations
我正在通过构建对象来试验 .reduce()
。
下面的代码成功构建了对象,但很浪费。 .reduce()
循环 3 次,因为数组包含 3 个项目。但是我分配键值.reduce()
的方式只需要循环一次。有没有办法让 .reduce()
只循环一次,或者有没有更有效的方法来解决这个问题?感谢您的任何输入!
"use strict";
var creatureArray = [];
var creatureObject = {}
creatureArray = ["Skeleton", "Sword", 10];
creatureObject = creatureArray.reduce((accumulator, currentValue, index, array) => {
accumulator[array[0]] = {
weapon: array[1],
damage: array[2]
}
return accumulator;
}, {});
console.log(creatureObject);
完全不确定为什么要在此处使用 .reduce()
。您似乎预计数组只有这三个项目,所以只需分配它们即可。
"use strict";
var creatureArray = ["Skeleton", "Sword", 10];
var creatureObject = {
[creatureArray[0]]: {
weapon: creatureArray[1],
damage: creatureArray[2]
}
}
console.log(creatureObject);
我正在通过构建对象来试验 .reduce()
。
下面的代码成功构建了对象,但很浪费。 .reduce()
循环 3 次,因为数组包含 3 个项目。但是我分配键值.reduce()
的方式只需要循环一次。有没有办法让 .reduce()
只循环一次,或者有没有更有效的方法来解决这个问题?感谢您的任何输入!
"use strict";
var creatureArray = [];
var creatureObject = {}
creatureArray = ["Skeleton", "Sword", 10];
creatureObject = creatureArray.reduce((accumulator, currentValue, index, array) => {
accumulator[array[0]] = {
weapon: array[1],
damage: array[2]
}
return accumulator;
}, {});
console.log(creatureObject);
完全不确定为什么要在此处使用 .reduce()
。您似乎预计数组只有这三个项目,所以只需分配它们即可。
"use strict";
var creatureArray = ["Skeleton", "Sword", 10];
var creatureObject = {
[creatureArray[0]]: {
weapon: creatureArray[1],
damage: creatureArray[2]
}
}
console.log(creatureObject);