gpt4 book ai didi

javascript - 点对象数组到 X 和 Y 数组

转载 作者:行者123 更新时间:2023-12-01 01:41:25 26 4
gpt4 key购买 nike

我有一个对象数组:

const points = [ {x: 0, y: 0 }, { x: 1, y: 1}, ...]

我想将它们转换为 x 和 y 数组:

const x = [0, 1, ...];
const y = [0, 1, ...];

我可以使用 2 张 map :

const x = points.map(v => v.x);
const y = points.map(v => v.y);

但这需要对数组进行 2 次迭代。我可以做一个循环:

const x = [];
const y = [];
for (let i = 0; i < points.length; ++i) {
const pt = points[i];
x.push(pt.x);
y.push(pt.y);
}

这似乎过于冗长并且可能很慢(所有这些阻力)。有更好的方法吗?

最佳答案

至少您需要一些推送到想要的结果集。该解决方案使用一个对象来推送到正确的数组。

const
points = [{ x: 0, y: 0 }, { x: 1, y: 1 }],
x = [],
y = [],
values = { x, y };

points.forEach(o => Object.entries(o).forEach(([k, v]) => values[k].push(v)));

console.log(x);
console.log(y);

基本相同,但 key 已知。

const
points = [{ x: 0, y: 0 }, { x: 1, y: 1 }],
x = [],
y = [],
values = { x, y },
keys = Object.keys(values);

points.forEach(o => keys.forEach(k => values[k].push(o[k])));

console.log(x);
console.log(y);

关于javascript - 点对象数组到 X 和 Y 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52371186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com