JavaScript:从对象数组的对象数组中,提取属性的值作为数组

金包迪

我有一个具有以下结构的 JavaScript 对象数组:

somedata = {
  foo: {
    bar: [
      {
        baz: [
          {
            someprop: 'a'
          },
          {
            someprop: 'b'
          },
          {
            someprop: 'c'
          }
        ]
      },
      {
        baz: [
          {
            someprop: 'd'
          },
          {
            someprop: 'e'
          },
          {
            someprop: 'f'
          }
        ]
      }
    ]
  }
}

我想someprop从这个 JavaScript 对象中提取字段作为数组['a', 'b', 'c', 'd', 'e', 'f']

目前,这是我将someprop字段提取为数组的代码逻辑

const result = []
somedata.foo.bar.forEach(x => {
  x.baz.forEach(y => {
    result.push(y.someprop)
  })
})
console.log(result) // prints ["a", "b", "c", "d", "e", "f"]

我试图通过创建一个函数来使代码更可重用:

function extractToArray(data, arr, prop) {
  let result = []
  data.forEach(x => {
    x[arr].forEach(y => {
      result.push(y[prop])
    })
  })
  return result;
}
console.log(extractToArray(somedata.foo.bar, 'baz', 'someprop'))

但是有没有更简洁、优雅、更干净的方法来实现这一目标?


注意: 可能的重复项涵盖对象数组,但这是关于对象数组的对象数组(因此简单的map解决方案不起作用)。

字符串

你可以使用flatMap

const somedata = {foo:{bar:[{baz:[{someprop:"a"},{someprop:"b"},{someprop:"c"}]},{baz:[{someprop:"d"},{someprop:"e"},{someprop:"f"}]}]}};
const result = somedata.foo.bar.flatMap(({baz}) => baz.map(({someprop}) => someprop));
console.log(result);

请注意,目前并非每个浏览器都支持此功能,因此您可能需要使用 polyfill。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从对象的数组和数组中提取对象的属性作为数组

来自分类Dev

Javascript中新对象数组中数组对象属性值的总和

来自分类Dev

数组作为对象中的属性

来自分类Dev

Typescript数组对象属性值作为类型

来自分类Dev

提取对象数组中另一个对象数组中的属性,并将结果作为字符串数组

来自分类Dev

提取对象数组中另一个对象数组中的属性,并将结果作为字符串数组

来自分类Dev

对象中的ConvertTo-Json,数组作为属性值

来自分类Dev

数组作为JavaScript中的受保护对象属性

来自分类Dev

数组作为JavaScript中的受保护对象属性

来自分类Dev

数组中对象的属性数组

来自分类Dev

Javascript过滤数组中的对象并返回数组中对象的属性

来自分类Dev

在JavaScript中获取数组/对象的值作为字符串

来自分类Dev

将对象值提取到数组中

来自分类Dev

提取对象数组中未知键的值

来自分类Dev

如何从JavaScript中的对象数组中检索属性值

来自分类Dev

如何从JavaScript中的对象数组中检索属性值

来自分类Dev

从对象数组中打印对象属性数组

来自分类Dev

从对象数组中的对象属性合并数组

来自分类Dev

数组作为javascript中对象的键

来自分类Dev

从数组中的所有JavaScript对象添加特定属性的值

来自分类Dev

javascript根据属性值从数组中删除所有对象

来自分类Dev

对象数组:作为数组键的值?

来自分类Dev

条件对象作为数组值

来自分类Dev

提取对象的对象数组

来自分类Dev

连接数组中对象的属性值

来自分类Dev

如何从对象数组中读取属性值?

来自分类Dev

从对象数组中获取属性的值

来自分类Dev

根据属性值限制数组中的对象

来自分类Dev

JavaScript按属性的数组值对对象数组进行排序

Related 相关文章

  1. 1

    从对象的数组和数组中提取对象的属性作为数组

  2. 2

    Javascript中新对象数组中数组对象属性值的总和

  3. 3

    数组作为对象中的属性

  4. 4

    Typescript数组对象属性值作为类型

  5. 5

    提取对象数组中另一个对象数组中的属性,并将结果作为字符串数组

  6. 6

    提取对象数组中另一个对象数组中的属性,并将结果作为字符串数组

  7. 7

    对象中的ConvertTo-Json,数组作为属性值

  8. 8

    数组作为JavaScript中的受保护对象属性

  9. 9

    数组作为JavaScript中的受保护对象属性

  10. 10

    数组中对象的属性数组

  11. 11

    Javascript过滤数组中的对象并返回数组中对象的属性

  12. 12

    在JavaScript中获取数组/对象的值作为字符串

  13. 13

    将对象值提取到数组中

  14. 14

    提取对象数组中未知键的值

  15. 15

    如何从JavaScript中的对象数组中检索属性值

  16. 16

    如何从JavaScript中的对象数组中检索属性值

  17. 17

    从对象数组中打印对象属性数组

  18. 18

    从对象数组中的对象属性合并数组

  19. 19

    数组作为javascript中对象的键

  20. 20

    从数组中的所有JavaScript对象添加特定属性的值

  21. 21

    javascript根据属性值从数组中删除所有对象

  22. 22

    对象数组:作为数组键的值?

  23. 23

    条件对象作为数组值

  24. 24

    提取对象的对象数组

  25. 25

    连接数组中对象的属性值

  26. 26

    如何从对象数组中读取属性值?

  27. 27

    从对象数组中获取属性的值

  28. 28

    根据属性值限制数组中的对象

  29. 29

    JavaScript按属性的数组值对对象数组进行排序

热门标签

归档