Javascript数组:如何检查两个连续的单词是否相同?

时间:2015-11-19 17:01:07

标签: javascript arrays

我希望我的程序检查数组中的任何两个连续单词是否相同。我相信我的“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?
}

3 个答案:

答案 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;在这种情况下,只是一个用于访问数组内容的整数索引。