【问题标题】:How to create multiple objects from array's value in JavaScript?如何在 JavaScript 中从数组的值创建多个对象?
【发布时间】:2022-10-30 19:49:54
【问题描述】:

我有一个这样的数组:

const data = [{
color:"red",
to:1,
from:2,
opacity:12

}]

我想要这样的东西:

const converted = [{from:2},{to:1},{opacity:12}]

我正在尝试的是:

const mappeData = data.map(({from,to,opacity})=>({from:from},{to:to},{opacity:opacity}))

但这不起作用。

【问题讨论】:

  • 您只能从函数返回单个值,因此您需要返回一个数组({from,to,opacity}) => [{from:from},{to:to},{opacity:opacity}])。要从结果创建平面数组,请使用 flatMap() 而不是 map。

标签: javascript reactjs arrays dictionary


【解决方案1】:

所以你可以遍历数组,对于每个对象,我们可以获得数组中对象的键,并使用map 将它们转换为我们想要的输出,然后输出将返回一个数组,但我们可以使用@987654321 @ 这会将返回的数组展平为单个对象数组!

感谢 pilchard 教授有关 flatMap 的知识!

const data = [{
color:"red",
to:1,
from:2,
opacity:12

}]

const arr = data.flatMap(x => Object.keys(x).map(data => ({[data]: x[data]})))

console.log(arr);

【讨论】:

  • 只需使用flatMap。不要只发布代码,花时间解释 OP 的代码有什么问题。
  • @pilchard 谢谢平面地图很棒,我先发布然后编辑它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 2021-01-26
  • 1970-01-01
  • 2022-12-15
  • 2016-07-11
  • 2021-06-15
相关资源
最近更新 更多