javascript – 如何获取对象数组中对象的所有属性值的数组?

我想获得每个对象的值的数组.

我有这个:

const numDataPoints = [
    {
      x0: {x: 807, y: 625},
      x1: {x: 15, y: 20},
      x2: {x: 5, y: 20}
    },
    {
      x0: {x: 11, y: 6},
      x1: {x: 16, y: 21},
      x2: {x: 7, y: 22}
    }
  ];

我要这个:

[
  [807, 625],
  [15, 20],
  [5, 20],
  [11, 6],
  [16, 21],
  [7, 22]
]

我试过这个:

numDataPoints.map((array) => array.map(axis => [axis.x, axis.y]));

但它抛出了这个错误:

Uncaught TypeError: array.map is not a function

最佳答案
您可以使用Array.map将每个对象转换为双元素数组的数组,然后缩小以展平结果:

const numDataPoints =  [{ x0: {x: 807, y: 625}, x1: {x: 15, y: 20},
            x2: {x: 5, y: 20} }, { x0: {x: 11, y: 6}, x1: {x: 16, y: 21}, x2: {x:7, y: 22} }];

let result = numDataPoints.map(
    item => Object.values(item).map(({x, y})=> [x, y]))
              .reduce((arr, current) => [...arr, ...current], []);

  console.log(result);

转载注明原文:javascript – 如何获取对象数组中对象的所有属性值的数组? - 代码日志