将字符串数组转换为对象数组

Rih*_*ana 1 javascript arrays underscore.js

我有这个JavaScript数组:

[ "124857202", "500255104", "78573M104" ]
Run Code Online (Sandbox Code Playgroud)

我想将此特定数组转换为对象数组,如下所示:

[
  { name: "124857202" },
  { name: "500255104" },
  { name: "78573M104" }
]
Run Code Online (Sandbox Code Playgroud)

geh*_*kky 6

我会看一下javascript 中的array.map函数。

const mappedArr = arr.map(value => {
  return {
    name: value
  }
})
Run Code Online (Sandbox Code Playgroud)


Fel*_*ing 5

使用Array#map每个值转换成不同的值:

var newArr = arr.map(function(value) {
  return {name: value};
});
Run Code Online (Sandbox Code Playgroud)

Array#map 将回调应用于数组中的每个元素,并返回一个包含回调的返回值的新数组。

  • @Kinduser:OP有一个字符串数组,想要一个对象数组。您从对象数组开始。您产生的结果也不同于OP的期望。看来您在误解问题中的控制台输出。 (2认同)
  • 我试图用箭头函数自己做这件事,但又回到了 `undefined` 。TIL 在箭头函数中返回对象字面量需要用括号括起来,例如 `arr.map(value => ({ name: value }))` (2认同)
  • @Danny:是的,否则`{...}`表示*功能主体*。 (2认同)

kin*_*ser 1

另一种方法- Array#reduce.

var arr = ["124857202", "500255104", "78573M104"];
var res = arr.reduce(function(s, a){
    s.push({name: a});
    return s;
  }, [])
  
console.log(res);
Run Code Online (Sandbox Code Playgroud)