在JavaScript中向已存在的数组添加新的键和一组值

3

我有这些数据:

myArray=['joe', 'sarah', 'jack', 'steph']
tempString = ' rogan'

我想将它转换为这个:
myArray=[
{name: 'joe', value: 'joe rogan'},
{name: 'sarah', value: 'sarah rogan'},
{name: 'jack', value: 'jack rogan'},
{name: 'steph', value: 'steph rogan'}
]

我尝试过:

myArray.map(o => ({ name: o.name }, { value: o.name + tempString });

但它不起作用。我该怎么做?

3个回答

2

您希望返回一个拥有两个属性的对象,因此不应该创建两个独立的对象字面量。在您的情况下,逗号运算符导致只有最后一个(第二个)被返回。

const myArray=['joe', 'sarah', 'jack', 'steph']
const tempString = ' rogan'
const res = myArray.map((name)=>({name,value:name+tempString}));
console.log(res);


1
以下代码片段可能会对您有所帮助。

const myArray = ["joe", "sarah", "jack", "steph"]
const tempString = " rogan"

const res = myArray.map((name) => ({
  name: name,
  value: name + tempString,
}))

console.log(res)


1
你也可以使用forEach函数遍历数组:

const myArray = ["joe", "sarah", "jack", "steph"]
const tempString = " rogan";

let newArray = [];
myArray.forEach((name) => newArray.push({name, value: name + tempString}));

console.log(newArray);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接