Javascript字符串数组到对象

时间:2018-03-21 23:38:34

标签: javascript arrays object

如何转换字符串数组:

var names = [
    "Bob",
    "Michael",
    "Lanny"
];

进入这样的物体?

var names = [
    {name:"Saab"},
    {name:"Michael"},
    {name:"Lanny"}
];

4 个答案:

答案 0 :(得分:6)

超级简单的Array.prototype.map()工作

names.map(name => ({ name }))

即...将每个条目(name)映射到具有键" name"的对象。和价值name



var names = [
    "Bob",
    "Michael",
    "Lanny"
];

console.info(names.map(name => ({ name })))




愚蠢的我,我忘记了最重要的部分

names.map(name => name === 'Bob' ? 'Saab' : name)
     .map(name => ({ name }))

答案 1 :(得分:1)

您也可以这样做:

var names = [
"Bob",
"Michael",
"Lanny"
];

var objNames = []

names.forEach(name => {
  objNames.push({
    name
  })
})

使用ES6,您可以设置name,它等于name: name

答案 2 :(得分:1)

你可以使用地图功能。 通常,list.map(f)将生成一个新列表,其中位置i的每个元素是将f应用于原始列表中相同位置的元素的结果。 例如:

names.map(function(s) { 
    return {name: s}
});

答案 3 :(得分:1)

使用Array.map()函数将数组映射到对象。 map()函数将遍历数组并返回一个新数组,该数组包含在原始数组中的每个元素上执行函数的结果。例如:

names = names.map(function(ele){return {"name":ele}});