首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数组对象属性组合到新数组中

将数组对象属性组合到新数组中
EN

Stack Overflow用户
提问于 2020-12-01 04:03:41
回答 1查看 35关注 0票数 0

我有一个名为rate的对象数组。在每个rate对象中都有一个tags属性。我想将所有对象的标签组合到新的数组中,这样期望的输出是:

代码语言:javascript
复制
["TAG_1_2_3_4", "TAG_7_8_9_0", "TAG_4_5_6"]

有没有比使用forEach遍历然后推送到数组更简单/干净的方法?

示例:

代码语言:javascript
复制
[
  {
    "price": "123",
    "tags": [
      "TAG_1_2_3_4",
      "TAG_7_8_9_0"
    ]
  },
  {
    "price":"456",
    "tags":[
      "TAG_4_5_6"
    ]
  }
]
EN

回答 1

Stack Overflow用户

发布于 2020-12-01 04:05:56

使用Array.flatMap()获取tags并将其展平为单个数组:

代码语言:javascript
复制
const arr = [{"price":"123","tags":["TAG_1_2_3_4","TAG_7_8_9_0"]},{"price":"456","tags":["TAG_4_5_6"]}]

const result = arr.flatMap(o => o.tags)

console.log(result)

如果不支持Array.flatMap(),则可以将Array.reduce()Array.concat()一起使用

代码语言:javascript
复制
const arr = [{"price":"123","tags":["TAG_1_2_3_4","TAG_7_8_9_0"]},{"price":"456","tags":["TAG_4_5_6"]}]

const result = arr.reduce((acc, o) => acc.concat(o.tags), [])

console.log(result)

或者使用Array.map()获取所有tags,并通过扩展到Array.concat()来实现扁平化

代码语言:javascript
复制
const arr = [{"price":"123","tags":["TAG_1_2_3_4","TAG_7_8_9_0"]},{"price":"456","tags":["TAG_4_5_6"]}]

const result = [].concat(...arr.map(o => o.tags))

console.log(result)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65080379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档