如何从 javascript 中的现有数组创建对象数组?
How to create an array of objects from an existing array in javascript?
我有一个数组,其元素为字符串格式,如下所示:
somearray = ["abc", "pqr", "xyz"]
我需要从这个数组创建一个对象,我已将其变量声明为 var newobject = {}
。我试过这个:
var newobject = {};
var index = 0;
somearray.forEach(function() {
newobj = {
name : somearray[index]
};
index++;
});
这确实创建了一个对象,但只包含数组中的最后一个字符串 (somearray
)
如果不是
newobj = {
name : somearray[index]
};
我写
newobj[index] = {
name : somearray[index]
};
对象命名为 0,1,2。我不希望发生这种情况,我也不想要其他任何东西。
有没有办法像我们对数组使用 push 方法?
只需使用键值表示法:
var newobject = {};
var somearray = ["abc", "pqr", "xyz"] ;
somearray.forEach(function(x,i){
newobject[i]=x;
})
console.log(newobject);
使用 Array.forEach
和 Array.push
函数的简单解决方案:
var somearray = ["abc", "pqr", "xyz"], objects = [];
somearray.forEach((v) => objects.push({name: v}) );
console.log(JSON.stringify(objects, 0, 4));
或者同样使用Array.map
函数:
var somearray = ["abc", "pqr", "xyz"], objects;
objects = somearray.map((v) => ({name: v}) );
输出:
[
{
"name": "abc"
},
{
"name": "pqr"
},
{
"name": "xyz"
}
]
我有一个数组,其元素为字符串格式,如下所示:
somearray = ["abc", "pqr", "xyz"]
我需要从这个数组创建一个对象,我已将其变量声明为 var newobject = {}
。我试过这个:
var newobject = {};
var index = 0;
somearray.forEach(function() {
newobj = {
name : somearray[index]
};
index++;
});
这确实创建了一个对象,但只包含数组中的最后一个字符串 (somearray
)
如果不是
newobj = {
name : somearray[index]
};
我写
newobj[index] = {
name : somearray[index]
};
对象命名为 0,1,2。我不希望发生这种情况,我也不想要其他任何东西。 有没有办法像我们对数组使用 push 方法?
只需使用键值表示法:
var newobject = {};
var somearray = ["abc", "pqr", "xyz"] ;
somearray.forEach(function(x,i){
newobject[i]=x;
})
console.log(newobject);
使用 Array.forEach
和 Array.push
函数的简单解决方案:
var somearray = ["abc", "pqr", "xyz"], objects = [];
somearray.forEach((v) => objects.push({name: v}) );
console.log(JSON.stringify(objects, 0, 4));
或者同样使用Array.map
函数:
var somearray = ["abc", "pqr", "xyz"], objects;
objects = somearray.map((v) => ({name: v}) );
输出:
[
{
"name": "abc"
},
{
"name": "pqr"
},
{
"name": "xyz"
}
]