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

如何在JavaScript中程序化创建指定结构的二维数组?

构建目标二维数组的完整实现方案

嘿,我帮你把这个数组构建的代码补全并优化一下!你已经有了年份和大洲的基础数组,只需要把每个年份对应的数据和它们关联起来就行,具体实现如下:

完整代码

// 你的基础数组
var continents = ['Africa', 'America', 'Asia', 'Europe', 'Oceania'];
var years = [1800, 1900, 2000, 2016];

// 先定义年份对应的数据映射,方便循环时快速获取
var yearDataMap = {
  1800: [107, 31, 635, 203, 2],
  1900: [133, 156, 947, 408, 6],
  2000: [814, 841, 3714, 727, 31],
  2016: [1216, 1001, 4436, 738, 40]
};

// 初始化目标数组
var seriesArray = [];

// 循环年份数组,构建每个对象
for (var i = 0; i < years.length; i++) {
  var currentYear = years[i];
  seriesArray.push({
    name: `Year ${currentYear}`,
    data: yearDataMap[currentYear]
  });
}

// 验证结果
console.log(seriesArray);

代码说明

  • 数据映射:用yearDataMap把年份和对应的数据数组绑定,这样比硬编码更灵活,后续修改年份或数据时更方便维护。
  • 循环构建:遍历years数组,每个年份生成一个包含name和data的对象,推入seriesArray中。name通过模板字符串拼接成你需要的'Year XXXX'格式,data直接从映射中取出对应数组。
  • 兼容性:如果需要兼容旧环境,把模板字符串换成字符串拼接:'Year ' + currentYear即可。

如果你想更简洁,也可以用Array.map()方法替代for循环,代码会更紧凑:

var seriesArray = years.map(year => ({
  name: `Year ${year}`,
  data: yearDataMap[year]
}));

这样就能完美得到你想要的seriesArray结构啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:46:21