Javascript 为什么可以';我不能在阵列上推送数据吗?
你能告诉我为什么这个代码会产生错误吗? 我想创建一个多维数组Javascript 为什么可以';我不能在阵列上推送数据吗?,javascript,arrays,for-loop,Javascript,Arrays,For Loop,你能告诉我为什么这个代码会产生错误吗? 我想创建一个多维数组 const segments=['avgekcr','efgghe','ewlskffd']; console.log(段) 设cols=[]; 让我们看一段,一封信; 对于(设i=0;i
const segments=['avgekcr','efgghe','ewlskffd'];
console.log(段)
设cols=[];
让我们看一段,一封信;
对于(设i=0;i }
您正在使用错误的索引进行推送,已更正代码
const segments=['avgekcr','efgghe','ewlskffd'];
console.log(段)
设cols=[];
让我们看一段,一封信;
对于(设i=0;i console.log(cols)
值为k
在第三次迭代后,您试图在一个实际上不存在的索引中推送一个项
改变
cols[k].push(currLetter);
到
const segments=['avgekcr','efgghe','ewlskffd'];
console.log(段)
设cols=[];
让我们看一段,一封信;
对于(设i=0;i 控制台日志(cols)代码>您已将空数组推送到col only变量2次。您正在尝试访问从0到7的cols[k](如果我们考虑段数组中的第一个索引) cols[k]
不存在-使用cols[j]
:
const segments=['avgekcr','efgghe','ewlskffd'];
设cols=[];
让我们看一段,一封信;
对于(设i=0;i 控制台日志(cols)
cols
只包含3个空数组,在某些情况下k
将大于2,因此cols[k]
返回未定义的我不关心您的预期结果,只是指出代码中的错误。
看看你的内部for循环:
for (let k = 0; k < currSegment.length; k += 1) {
currLetter = currSegment[k]
cols[k].push(currLetter);
}
使用以下方法向“cols”添加元素,因为“cols”是一维数组。只有当cols[k].push是多维数组时,才能使用它
cols.push(currSegment[k]); // no need to define an additional variable to keep currSegment[k] value
for (let i = 0; i < segments.length; i++) {
cols.push([]);
cols[i] = segments[i].split('');
}
对于您的实现,您可以使用split函数将字符串转换为char数组,concat函数合并以前的cols和新的char数组
const segments = ['avgekcr', 'efgghe', 'ewlskffd'];
let cols = [];
for (let i = 0; i < segments.length; i++) {
cols = cols.concat(segments[i].split(''));
}
const segments=['avgekcr','efgghe','ewlskffd'];
设cols=[];
for(设i=0;i
如果需要访问二维数组中的所有线段,请使用以下方法
cols.push(currSegment[k]); // no need to define an additional variable to keep currSegment[k] value
for (let i = 0; i < segments.length; i++) {
cols.push([]);
cols[i] = segments[i].split('');
}
for(设i=0;i
那么,输出应该是什么?它看起来应该是[['avgekcr',efgghe',ewlskffd'],['avgekcr',efgghe',ewlskffd'],['avgekcr',efgghe',ewlskffd']]
,是这样吗?显然cols[k]
的值不是数组,因为该元素是未定义的
。我假设您要做的是cols[j].push(currentLetter)
您可能是指cols[j]
而不是cols[k]
sidenote:您的整个代码可以简化为const cols=segments.map(item=>item.split(“”))代码>谢谢!我理解我的逻辑错误。我想知道是否可以使用索引j或k。这基本上是让cols=segments.join(“”)。split(“”)代码>和顺便说一句。他的代码创建了一个二维数组。是@Thomus for(让i=0;i