如何使用 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);