Javascript 如何将值数组映射到对象数组

Javascript 如何将值数组映射到对象数组,javascript,arrays,Javascript,Arrays,我想将以下数组转换为对象数组: let arr = ['tree', 'apple', 'orange'] 到 到目前为止,我的解决方案是: let temp = []; arr.forEach(x => { temp.push({value: p}); }); arr = temp 如何使用array.map()功能解决此问题,以便调用 arr.map()... 从.map回调返回的内容将是该索引处数组中的新项-因此,只需将临时推送(替换为返回): 让arr=[

我想将以下数组转换为对象数组:

let arr = ['tree', 'apple', 'orange']

到目前为止,我的解决方案是:

let temp = []; 
arr.forEach(x => {   
   temp.push({value: p}); 
});

arr = temp
如何使用array.map()功能解决此问题,以便调用

arr.map()...

.map
回调返回的内容将是该索引处数组中的新项-因此,只需将
临时推送(
替换为
返回
):

让arr=['tree','apple','orange'];
arr=arr.map(x=>{
返回{value:x};
});

console.log(arr);
您可以通过以下方式执行此操作:

const arr=['tree'、'apple'、'orange'];
const result=arr.map(value=>({value}));
console.log(result);
方法创建一个新数组,其中包含对调用数组中的每个元素调用提供函数的结果

您可以在
arr
上使用此选项来获取更新的阵列:

让arr=['tree','apple','orange'];
让arrOfObjects=arr.map(el=>{return{value:el}})

console.log(arrOfObjects);
映射是纯映射它不会更改您的目标或父数组。映射创建自己的数组副本,并通过对复制的数组执行操作返回结果

让arr=['tree','apple','orange'];

log(arr.map(x=>({value:x}));
arr.map(value=>({value}))
arr.map(o=>({value:o}))
?虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期值。是否有一种方法可以直接操作数组而无需赋值?您可以重新赋值每个索引:
arr[i]=({value:arr[i]})
,但在不必要时最好避免重新分配和变异。请描述您更改了什么以及为什么更改,以帮助其他人识别问题并理解此答案!
arr.map()...
arr.map(p => 
 {   
   return {value: p}; 
 })