首页 > 解决方案 > 为什么我不能在阵列上推送数据?

问题描述

你能告诉我为什么这段代码会产生错误吗?我想创建一个多维数组

const segments = ['avgekcr', 'efgghe', 'ewlskffd'];
console.log(segments)
let cols = [];
let currSegment, currLetter;

for (let i = 0; i < segments.length; i += 1) cols.push([]);

console.log(cols[2])
//cols.push([])
console.log(cols.length + ' :L')

for (let j = 0; j < segments.length; j += 1) {
  currSegment = segments[j];
  for (let k = 0; k < currSegment.length; k += 1) {
    currLetter = currSegment[k]
    cols[k].push(currLetter);

  }
}

错误:

未捕获的类型错误:无法读取未定义的属性“推送”

标签: javascriptarraysfor-loop

解决方案


您使用错误的索引推送,更正了代码。

const segments = ['avgekcr', 'efgghe', 'ewlskffd'];
console.log(segments)
let cols = [];
let currSegment, currLetter;

for (let i = 0; i < segments.length; i += 1) cols.push([]);

console.log(cols[2])
//cols.push([])
console.log(cols.length + ' :L')

for (let j = 0; j < segments.length; j += 1) {
  currSegment = segments[j];
  for (let k = 0; k < currSegment.length; k += 1) {
    currLetter = currSegment[k]
    cols[j].push(currLetter);

  }
}

console.log(cols)


推荐阅读