Vous n'avez pas de tableaux dans votre numDataPoints
mais des objets ordinaires, de sorte que vous ne pouvez pas utiliser map
.
Ce dont vous avez besoin, c'est Object.values
. Ou bien, pour garantissent le même ordre des clés x0
, x1
y x2
, déstructurer con {x0, x1, x2}
et ensuite utiliser [x0, x1, x2]
.
La structure de numDataPoints
suggère, que vous voulez en fait un tableau de deux tableaux, chacun avec trois [x, y]
points, au lieu de six seulement [x, y]
points. Si vous voulez toujours aplatir ces sous-réseaux, utilisez concat
o flatMap
(actuellement candidat à l'étape 3, susceptible de faire partie de l'édition ECMAScript finalisée en juin 2019).
Voici les six possibilités :
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}
}
];
// Object.values, same structure
console.log(numDataPoints.map((obj) => Object.values(obj).map(({x, y}) => [x, y])));
// Object.values, flattened with concat
console.log([].concat(...numDataPoints.map((obj) => Object.values(obj).map(({x, y}) => [x, y]))));
// Object.values, flattened with flatMap
console.log(numDataPoints.flatMap((obj) => Object.values(obj).map(({x, y}) => [x, y])));
// Destructuring, same structure
console.log(numDataPoints.map(({x0, x1, x2}) => [x0, x1, x2].map(({x, y}) => [x, y])));
// Destructuring, flattened with concat
console.log([].concat(...numDataPoints.map(({x0, x1, x2}) => [x0, x1, x2].map(({x, y}) => [x, y]))));
// Destructuring, flattened with flatMap
console.log(numDataPoints.flatMap(({x0, x1, x2}) => [x0, x1, x2].map(({x, y}) => [x, y])));