我希望我的程序检查数组中的任何两个连续单词是否相同。我相信我的“if”语句是正确的,但是console.log显示所有连续的单词都匹配。我在这里想念什么?
任何帮助表示赞赏!我是这个东西的新手:)
var wordArray = ["blue", "green", "yellow", "red", "red", "blue", "blue", "yellow"]
for (i=0; i<wordArray.length - 1; i++) {
if (i === i+1); {
console.log("We have a match!");
} //Why is this loop saying that all items in the array are equal?
}
答案 0 :(得分:5)
试试这个。您正在检查索引而不是错误的if语句旁边的数组元素。
for (i = 0; i < wordArray.length - 1; i++) {
if (wordArray[i] === wordArray[i + 1]) {
console.log("We have a match!");
}
}
如果数组只有一个元素长,只需提示更好的长度处理:
for (i = 1; i < wordArray.length; i++) {
if (wordArray[i - 1] === wordArray[i]) {
console.log("We have a match!");
}
}
答案 1 :(得分:0)
试试这个,
var wordArray = ["blue", "green", "yellow", "red", "red", "blue", "blue", "yellow"]
for (i=1; i<wordArray.length; i++) {
if (wordArray[i] === wordArray[i-1]) {
console.log("We have a match!");
}
}
答案 2 :(得分:0)
看起来你实际上在比较你的指数var&#34; i&#34;到&#34; i + 1&#34;在您的代码中导致您的控制台说明数组中的所有项目都是相同的。 由于您实际上在比较索引var,因此您的Javascript将其视为:
if(1 === 2)
console.log("We have a match");
因为你真的想要比较wordArray的内容:
if(wordArray[i] === wordArray[i + 1])
console.log("We have a match!");
这里要记住的重要一点是,使用&#34; for&#34;循环,索引变量,&#34; i&#34;在这种情况下,只是一个用于访问数组内容的整数索引。