javascript:';返回';被忽略并继续循环

javascript:';返回';被忽略并继续循环,javascript,Javascript,我首先对注释的值进行散列,然后在magazineAr中进行检查,以查看注释的每个单词是否都包含在杂志中。如果注释单词在散列中不存在,那么我将返回“否”。但是,我在控制台中不断得到一个返回“是”。 我在调试器模式下观察过它,我看到它进入语句,在语句中点击“return No”,但它只是继续执行forEach循环。我甚至尝试过return false,但同样的事情。AforEach回调忽略返回的值-无论它是什么,数组中的每个项都将用t调用他是forEach。对于您尝试执行的操作,您可能应该改用eac

我首先对注释的值进行散列,然后在magazineAr中进行检查,以查看注释的每个单词是否都包含在杂志中。如果注释单词在散列中不存在,那么我将返回“否”。但是,我在控制台中不断得到一个返回“是”。

我在调试器模式下观察过它,我看到它进入语句,在语句中点击“return No”,但它只是继续执行forEach循环。我甚至尝试过
return false
,但同样的事情。

A
forEach
回调忽略返回的值-无论它是什么,数组中的每个项都将用t调用他是
forEach
。对于您尝试执行的操作,您可能应该改用
each
,它检查数组中的所有项是否满足以下条件:

function checkMagazine(magazine, note) {
    var map = new Map();
    var noteAr = note.split(" ");
    var magazineAr = magazine.split(" ")

    noteAr.forEach((note) => {
        if (map.has(note)) {
            map.set(note, map.get(note) + 1)
        } else {
            map.set(note)
        }
    });

    magazineAr.forEach((word) => {
        if (!map.has(word)) {
            return "No"
        }
    });

    return "Yes"
}

forEach
回调忽略返回的值-无论它是什么,数组中的每个项都将被
forEach
调用。对于您尝试执行的操作,您可能应该改用
every
,它检查数组中的所有项是否满足条件:

function checkMagazine(magazine, note) {
    var map = new Map();
    var noteAr = note.split(" ");
    var magazineAr = magazine.split(" ")

    noteAr.forEach((note) => {
        if (map.has(note)) {
            map.set(note, map.get(note) + 1)
        } else {
            map.set(note)
        }
    });

    magazineAr.forEach((word) => {
        if (!map.has(word)) {
            return "No"
        }
    });

    return "Yes"
}