使用 Javascript 将一维数组转换为对象数组
2021-02-26
270
我已将数组展平如下:
let playerPool = [...new Set(array.flat(1))];
其输出如下:
["Howard Bell", "Matt Blair", "Dave Custer"]
我如何将其转换为对象数组?我想更新上面的内容,使其格式如下:
[ {Name: "Howard Bell", Count: "0"}, {Name: "Matt Blair", Count: "0"}, {Name: "Dave Custer", Count: "0"} ]
我试图通过循环遍历 playerPool 数组来进行设置,但出现以下错误:TypeError: 无法设置未定义的属性“Name”
let playerPool = [...new Set(array.flat(1))];
let playerObjects = [];
for(let i = 0; i < playerPool.length; i++) {
playerObjects[i].Name = playerPool[i];
playerObjects[i].Count = 0;
}
我的目标是能够像这样
playerObjects[0].Count
单独引用每个属性,以便我以后可以更新计数值。
2个回答
您忘记创建要分配属性的对象。
但您可以使用
map
以更具功能性的方式完成此操作:
let playerPool = ["Howard Bell", "Matt Blair", "Dave Custer"];
let result = playerPool.map(name => ({name, count:0}));
console.log(result);
注意:如果可能,请选择 camelCase 作为属性名称。通常的做法是将 PascalCase 保留为构造函数名称(“类”)。
trincot
2021-02-26
您可以尝试这样的操作,
let array1 = ["Howard Bell", "Matt Blair", "Dave Custer"];
let array2 = [];
array1.forEach(el => {
array2.push({Name: el, count: 0});
});
console.log(array2);
Santa
2021-02-26