javascript - 我可以使用 forEach 使数组的每个元素成为一个新对象吗?

标签 javascript arrays object

我用循环创建了一个包含许多元素的数组:

myArray = [c1, c2, c3...]

现在我想将每个元素变成一个对象并分配不同的键值:

c1 = {image = path, value = number)

我尝试运行 forEach() 但无法找出正确的方法,而且我还没有成功找到答案。

我的猜测是:

myArray.forEach(function() {
  let name = {
    image = path,
    value = number,
  }
  return name;
});

但日志中的元素没有变化。

任何可以帮助我的帮助或答案链接。第一次在这里编码。

更新:一个更简单的解决方案是,当我首先使用循环创建数组时,推送对象的所有键和值。

array.push({图像:路径x,值:数字x})

最佳答案

可以,但最好使用一个简单的for循环:

for (let i = 0; i < myArray.length; ++i) {
    let entry = myArray[i];
    myArray[i] = {image: entry.path, value: entry.number};
}

或者使用map创建一个数组。

newArray = myArray.map(entry => ({image: entry.path, value: entry.number}));

或者如果您更喜欢非箭头函数:

newArray = myArray.map(function(entry) {
    return {image: entry.path, value:  entry.number};
});

关于javascript - 我可以使用 forEach 使数组的每个元素成为一个新对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48139165/

相关文章:

Python - 重用相同的字典,同时仅更改提供值的对象

javascript - 如何在 var 声明中获取该数组的第一个元素?

javascript - 如何在 React 中打印 JavaScript new Date()?

arrays - []json.Rawmessage 是什么意思

javascript - jQuery:按类选择元素返回 jQuery.fn.init(9) - 无法读取 .val()

jQuery : loop through nested objects

Python 类/实例/对象组织问题

javascript - 将 ViewData 值从 Controller 传递到 View

javascript - 如何导出没有大括号的扩展类? ( Node JS)

arrays - 如何将函数应用于 Postgres 中数组列的每个元素?