我试图用一个用户输入的单词,检查数组中的所有单词,然后删除数组中包含任何相同字母的单词,其中包含以下内容:
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);
}
}
}
浏览器控制台正在给我&#34; TypeError:无法读取属性&#39;包含&#39;未定义的。&#34;在测试时我可以打印input[A]
罚款,我可以打印words[
我选择]
的随机数,但是当我尝试打印words[b]
它时,未定义。
问题
我无法弄清楚为什么words[b]
未定义。
答案 0 :(得分:2)
数组索引从0开始。从0开始循环 - arr.length-1。单词[words.length]中的元素未定义。
let 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);
}
}
}