indexOf忽略数组中的第二个字符

时间:2016-09-08 09:51:38

标签: javascript arrays indexof

我正在研究JS,我需要编写一个程序来检查数组第一个元素中的字符串是否包含数组第二个元素中字符串的所有字母。

我已经制作了这样的代码:

    function mutation(arr) {mutation: {
    var lowerCaseStringOne = arr[0].toLowerCase();
    var lowerCaseStringTwo = arr[1].toLowerCase();

    if (lowerCaseStringOne === lowerCaseStringTwo) {
        console.log(true);
        break mutation;
    }

    var newArray = [];

    for (var i = 0; i < lowerCaseStringTwo.length; i++){
        console.log(lowerCaseStringTwo[i]);
        if (lowerCaseStringTwo.indexOf(lowerCaseStringOne[i]) > 0) {
            newArray.push(lowerCaseStringTwo[i]);
            console.log('---');
        } 
    }

    var result = newArray.join("");

    if (result === lowerCaseStringTwo) {
        console.log(true);
    } else {
        console.log(false);
    }
}
}

mutation(["Mary", "Aarmy"]);

我认为这很复杂,但我无法解决问题 - &#34; indexOf&#34;函数似乎忽略了我的循环中的第二个字符 - 在控制台中记录它但不会推入数组。我认为这可能会发生,因为第一个和第二个字母是相似的,但它不是。不管是什么字母,它都会忽略它。

1 个答案:

答案 0 :(得分:0)

indexOf()将在示例中为字母“a”返回0,因为第一个实例位于数组中的第0位。

您应该使用“&gt; = 0”