【发布时间】:2018-11-19 18:13:00
【问题描述】:
我正在尝试获取用户输入的单词,将其与数组中的所有单词进行检查,然后删除数组中包含任何相同字母的单词,其中包含以下内容:
var words = [
// words go here
]
for (let a = 0; a <= inputWord.length; a++) {
for (let b = 0; b <= words.length; b++) {
if (!words[b].includes(inputWord[a])) {
words.splice(b, 1);
}
}
}
浏览器控制台显示“TypeError:无法读取未定义的属性‘包含’。”测试时我可以打印出input[A] 很好,我可以打印出words[ 我选择的随机数] 很好,但是当我尝试打印words[b] 时,它会出现未定义。
问题
我无法弄清楚为什么words[b] 未定义。
【问题讨论】:
-
splace拼写在编程中很重要。检查您的控制台是否有错误。 -
一个空数组将返回未定义的代码,如果你试图循环遍历数组,你应该使用
b < words.length -
对不起!在问题中修复了它,但这只是我匆忙写这篇文章。据我所知,我的实际代码中的所有内容似乎都拼写正确。
-
您不应该尝试从 0 迭代到
<=.length- 在达到数组长度之前停止 。更好的是,改用filter,for循环不太好使用 -
@ItaiYasur 只做 b
标签: javascript arrays include undefined