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

如何使用JavaScript的new Array(n)声明创建二维数组

用JavaScript的new Array(n)创建指定大小的二维数组

你的代码问题出在:new Array(20)只生成了一个长度为20的一维数组,里面每个元素都是undefined,内层循环访问quinielas[i].length时自然会报错——因为quinielas[i]根本不是数组。

要创建i行j列的二维数组,得先给一维数组的每个元素都初始化一个新数组。下面是修正后的代码:

// 先声明一维数组,行数为20
let quinielas = new Array(20);

// 补充generaSimbolo函数的示例实现(你可以根据需求修改)
function generaSimbolo() {
  const opciones = ['1', 'X', '2'];
  return opciones[Math.floor(Math.random() * opciones.length)];
}

function generaResultados(quinielas, columnas) {
  for (let i = 0; i < quinielas.length; i++) {
    // 关键:给每行初始化一个指定列数的数组
    quinielas[i] = new Array(columnas);
    for (let j = 0; j < quinielas[i].length; j++) {
      quinielas[i][j] = generaSimbolo();
    }
  }
  console.table(quinielas);
}

// 调用时传入列数,比如要14列就传14
generaResultados(quinielas, 14);

如果想更简洁,也可以一步到位创建二维数组:

// 直接创建20行14列的二维数组
let quinielas = Array.from({ length: 20 }, () => new Array(14));

这种方式用Array.from遍历生成每行的数组,省去手动初始化的循环步骤。

核心逻辑就是:二维数组本质是数组的数组,所以必须先让外层数组的每个元素都成为一个新数组,才能进行内层的赋值操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:05:38