无法读取属性';包括';JavaScript数组对象的未定义值
这是我的代码:无法读取属性';包括';JavaScript数组对象的未定义值,javascript,arrays,Javascript,Arrays,这是我的代码: var nestedArr = [[1, 2, 3], [5, 2, 1, 4]]; var result; for (var a = 0; a < nestedArr.length; a++) { // iterate nestedArr for (var b = 0; b < nestedArr[a].length; b++) { if (nestedArr[a+1].includes(nestedArr[a][b])) {
var nestedArr = [[1, 2, 3], [5, 2, 1, 4]];
var result;
for (var a = 0; a < nestedArr.length; a++) { // iterate nestedArr
for (var b = 0; b < nestedArr[a].length; b++) {
if (nestedArr[a+1].includes(nestedArr[a][b])) {
result.push(nestedArr[a][b]);
}
}
}
var nestedArr=[[1,2,3],[5,2,1,4];
var结果;
对于(var a=0;a
输出:错误:无法读取未定义的属性“includes”
。但至少我可以确定几件事:
1. <代码>包含()方法存在于JavaScript中的数组中
2.运行一条语句nestedArr[a+1]代码>在控制台中给我数组[5,2,1,4]
所以,我真的不理解错误
?请帮我弄清楚这件事。谢谢。程序将搜索不存在的索引
var nestedArr = [[1, 2, 3], [5, 2, 1, 4]];
...
...
if (nestedArr[a+1].includes(nestedArr[a][b])) {
// As nestedArr.length will return 2, the program will eventually search for nestedArr[2+1 (=3)] which doesn't exist.
}
}
}
奖金:为什么不在nestedArr中为var i使用
而不是使用.length
程序将搜索不存在的索引
var nestedArr = [[1, 2, 3], [5, 2, 1, 4]];
...
...
if (nestedArr[a+1].includes(nestedArr[a][b])) {
// As nestedArr.length will return 2, the program will eventually search for nestedArr[2+1 (=3)] which doesn't exist.
}
}
}
奖金:为什么不在nestedArr中为var i使用
而不是使用.length
var nestedArr=[[1,2,3],[5,2,1,4];
var结果=[];
对于(var a=0;a
删除加号完成了任务,基本上您尝试访问一个数组,但没有数组存在var nestedArr=[[1,2,3],[5,2,1,4];
var结果=[];
对于(var a=0;a
删除加号1就可以了,基本上你试图访问一个数组,但是没有数组出现。正如@Nina Scholz评论的那样
最后一个索引加上一个不存在
您不需要通过包含项进行检查!只需使用filter
和map
作为示例执行循环和分配
var nestedArr=[[1,2,3],[5,2,1,4];
var结果=[];
nestedArr.filter((val)=>{
val.map((v)=>{result.push(v);})
})
控制台日志(结果)代码>如@Nina Scholz所评论
最后一个索引加上一个不存在
您不需要通过包含项进行检查!只需使用filter
和map
作为示例执行循环和分配
var nestedArr=[[1,2,3],[5,2,1,4];
var结果=[];
nestedArr.filter((val)=>{
val.map((v)=>{result.push(v);})
})
控制台日志(结果)代码>上一个索引加上一个不存在。此代码打算实现什么?上一个索引加上一个不存在。此代码打算实现什么?