我想将以下数组转换为对象数组:
let arr = ['tree', 'apple', 'orange']
到
arr = [
{value: tree},
{value: apple},
{value: orange}
]
到目前为止,我的解决方案是:
let temp = [];
arr.forEach(x => {
temp.push({value: p});
});
arr = temp
我该如何使用array.map()功能解决此问题,以便我可以调用
arr.map()...
答案 0 :(得分:3)
您可以使用Array.prototype.map()这样操作:
const arr = ['tree', 'apple', 'orange'];
const result = arr.map(value => ({ value }));
console.log(result);
或更明确地说,没有隐式的返回值或对象简写符号:
const arr = ['tree', 'apple', 'orange'];
const result = arr.map(x => {
return { value: x };
});
console.log(result);
答案 1 :(得分:2)
从.map
回调返回的内容将是该索引处数组中的新项-因此,只需将temp.push(
替换为return
:
let arr = ['tree', 'apple', 'orange'];
arr = arr.map(x => {
return { value: x };
});
console.log(arr);
或者,为了更简洁起见,从箭头函数隐式返回:
let arr = ['tree', 'apple', 'orange'];
arr = arr.map(x => ({ value: x }));
console.log(arr);
(为清晰起见,您可以考虑不覆盖arr
-分配一个新的变量名,如果可以的话,arr
可以是{ {1}})
答案 2 :(得分:0)
arr.map(p =>
{
return {value: p};
})
答案 3 :(得分:0)
map()
方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。
您可以在arr
上使用它来获取更新的数组:
let arr = ['tree', 'apple', 'orange'];
let arrOfObjects = arr.map( el => { return { value: el } })
console.log(arrOfObjects);
答案 4 :(得分:0)
地图是纯的,它不会更改目标或父数组。 Map会创建自己的数组副本,并通过对复制的数组进行操作来返回结果。
let arr = ['tree', 'apple', 'orange'];
console.log(arr.map(x => ({ value: x })));