You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中将两个一维数组合并为二维数组?

合并等长数组为二维数组及D3折线图数据方案

一、合并数组的实现方法

1. 使用map方法(最简洁)

利用数组的map方法,遍历x数组的同时通过索引取y数组对应的元素,直接生成目标二维数组:

const x = Array.from({length: 1440}, (_, i) => i); // 生成0到1439的数组
const y = Array.from({length: 1440}, () => Math.floor(Math.random() * 101)); // 生成0-100的随机数数组

const z = x.map((value, index) => [value, y[index]]);

2. 使用forEach循环

初始化空数组,通过遍历索引将对应元素组合后推入:

const z = [];
x.forEach((value, index) => {
  z.push([value, y[index]]);
});

3. 传统for循环

适合需要更精细控制遍历过程的场景:

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

二、D3折线图的其他数据格式选项

除了二维数组,D3的折线生成器还支持对象数组格式,这种方式可读性更强,也不需要刻意合并原数组:

1. 转换为对象数组

const data = x.map((value, index) => ({
  x: value,
  y: y[index]
}));

使用时只需在折线生成器中指定访问器:

const line = d3.line()
  .x(d => d.x) // 指定x字段
  .y(d => d.y); // 指定y字段

2. 直接基于原数组生成折线

甚至可以不转换数组,直接在折线生成器中通过索引关联两个数组:

const line = d3.line()
  .x((_, index) => x[index]) // 通过索引取x数组的值
  .y(d => d); // 直接使用y数组的元素
// 调用时传入y数组即可:line(y)

内容的提问来源于stack exchange,提问作者Dvdscot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 12:05:30