我想要一个像这样的对象
var obj = {
"ABC" : { name: true, dob: true},
"CDE" : { name: true, dob: true},
"EFG" : { name: true, dob: true},
"CBA" : { name: true, dob: true},
"XYZ" : { name: true, dob: true},
}
目前我只有数组
var arr = ["ABC","CDE","EFG","CBA","XYZ"];
我试过添加这个
newArray.push({
key: arr[i],
name: true,
dob: true
});
var newObj = {}
newObj[i] = newArray;
但我无法将其作为一个整体对象传递给我的代码。 当我字符串化它时,它返回
输出
{
'0':"[{
key: "ABC",
name: true,
dob: true
},{
key: "CDE",
name: true,
dob: true
}]"
}
您可以使用Object.assign
来创建对象。使用扩展运算符和map
来重申数组。
var arr = ["ABC", "CDE", "EFG", "CBA", "XYZ"];
var obj = Object.assign(...arr.map(o => ({[o]: {name: true,dob: true}})));
console.log(obj);
另一种选择是使用reduce
将数组转换为有效对象。
var arr = ["ABC", "CDE", "EFG", "CBA", "XYZ"];
var obj = arr.reduce((c, v) => Object.assign(c, {[v]: {name: true,dob: true}}), {});
console.log(obj);
使用 Array.reduce
var arr = ["ABC","CDE","EFG","CBA","XYZ"];
var result = arr.reduce((a,c) => {
a[c] = {name: true, dob: true};
return a;
}, {});
console.log(result);
var arr = ["ABC","CDE","EFG","CBA","XYZ"];
let obj = {};
arr.forEach(x=> {
obj[x] = {
name: true,
dob: true
}
});
console.log(obj)
循环遍历数组,对于每个元素,将其用作键并添加一个对象作为值
这是使用 JSON.parse(( 生成输出对象的另一种方法
var objStr = '{'
var arr = ["ABC", "CDE", "EFG", "CBA", "XYZ"],
propertyValue = ':{"name":true,"dob":true}'
for (var x in arr) {
if (x < arr.length - 1)
objStr += '"' + arr[x] + '"' + propertyValue + ','
else
objStr += '"' + arr[x] + '"' + propertyValue
}
objStr += '}'
console.log(JSON.parse(objStr))
希望这对您:)有所帮助