如何在javascript中从现有数组创建对象数组?

时间:2016-06-18 19:11:50

标签: javascript arrays object javascript-objects

我有一个数组,其元素是字符串格式,如下所示:

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方法的数组?

2 个答案:

答案 0 :(得分:3)

使用Array.forEachArray.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);