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

JavaScript矩阵赋值报错:TypeError无法设置未定义属性

解决二维数组赋值时的TypeError问题

你遇到的报错原因很明确:let sortedPieces=[[]]只初始化了索引为0的第一行空数组,索引为1的第二行根本不存在,访问sortedPieces[1]得到的是undefined,自然无法给undefined[0]设置属性。

下面是几种可行的解决方法:

  • 提前初始化所有行
    如果你明确知道需要的行数,直接在声明时初始化对应数量的空数组:

    // 比如需要3行,就初始化3个空数组
    let sortedPieces = [[], [], []];
    // 之后即可正常赋值
    sortedPieces[1][0] = [1,2];
    
  • 赋值前动态创建行
    如果不确定行数,每次赋值前先检查目标行是否存在,不存在则先创建空数组:

    // 假设要给第i行第j列赋值
    const targetRow = 1;
    const targetCol = 0;
    // 检查目标行是否存在,不存在则创建
    if (!sortedPieces[targetRow]) {
      sortedPieces[targetRow] = [];
    }
    // 现在可以正常赋值
    sortedPieces[targetRow][targetCol] = [1,2];
    
  • 直接初始化目标矩阵
    如果已经明确最终的矩阵结构,直接完整初始化更高效:

    let sortedPieces = [
      [[1,2],[2,3],[3,4],[4,5]],
      [[1,2],[2,3],[3,4],[4,5]],
      [[1,2],[2,3],[3,4],[4,5]]
    ];
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:24:55