我有一个数组,其元素是字符串格式,如下所示:
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方法的数组?
答案 0 :(得分:3)
使用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"
}
]
答案 1 :(得分:0)
只需使用键值表示法:
var newobject = {};
var somearray = ["abc", "pqr", "xyz"] ;
somearray.forEach(function(x,i){
newobject[i]=x;
})
console.log(newobject);