这样写,为何不行?不是数组吗?

var arr = [13,21,32,41,50,69];
let newarr = [];
for(let x = 0;x<5;x++){
    for(let i = 0; i<=arr.length; i++){
        newarr[x].push(arr[i]);
    }
}
console.log(newarr);

报错:
Uncaught TypeError: Cannot read properties of undefined (reading 'push')

at <anonymous>:5:19

newarr[x]这样命名不行吗?

阅读 3k
4 个回答

newarr是个数组,但是如果你要用二维数组,至少还需要再声明一下newarr[x]是个数组:

var arr = [13,21,32,41,50,69];
let newarr = [];
for(let x = 0;x<5;x++){
    newarr[x] = []; // 声明数组;
    for(let i = 0; i<=arr.length; i++){
        newarr[x].push(arr[i]);
    }
}
console.log(newarr);

希望能帮助到你。

  var arr = [13,21,32,41,50,69];
  let newarr = [];
  for(let x = 0;x<5;x++){
      newarr[x] = [];
      for(let i = 0; i<=arr.length; i++){
          newarr[x].push(arr[i]);
      }
  }
  console.log(newarr);
        var arr = [13, 21, 32, 41, 50, 69];
        let newarr = [];
        for (let x = 0; x < 5; x++) {
            for (let i = 0; i < arr.length; i++) {
                (newarr[x] || (newarr[x] = [])).push(arr[i]);
            }
        }
        console.log(newarr);

newarr[x] 通过x下标取的newarr里的元素 这个元素不是数组啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题