如何从 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.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"
    }
]