array.forEach之后的回调函数

zeK*_*oko 0 javascript arrays foreach

我有一个比较2个字符串数组的函数...例如['snookums', 'snook'],如果第二个字符串中的所有字母都出现在第一个字符串中,它会返回true,所以在这个例子中,它应该返回true.

我让它与for循环一起工作:

function mutation(arr) {
    for (var i = 0; i < arr[1].length; i++) {
        if (arr[0].indexOf(arr[1][i]) === -1) {
            return false;
        }
    }
    return true;
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望以更好的方式使用它,最终使用forEach.我有它控制台注销false如果遇到一个不匹配的字母,但我想知道这将工作,true如果它到达结束forEachindexOf()返回true每个字母我将如何返回.

function mutation(arr) {
return arr.pop()
    .split('')
    .forEach(function(letter) {
        console.log(arr[0].indexOf(letter) === -1);
    });
}
console.log(mutation(["snookums", "for"]));
Run Code Online (Sandbox Code Playgroud)

那有意义吗?

谢谢

Ber*_*rgi 5

forEach不是一个"更好"的方式.您正在寻找的every方法是:

function mutation(arr) {
    return arr[1].split("").every(function(letter) {
        return arr[0].indexOf(letter) !== -1;
    });
}
Run Code Online (Sandbox Code Playgroud)