缩短Javascript

缩短Javascript,javascript,node.js,Javascript,Node.js,我知道可能有一种方法可以缩短这个功能,新的ES6会尽我最大的努力来解决这个问题,有没有人可以缩短它,使它仍然能够正常工作?这样,也许我可以看出我做错了什么,为什么这不起作用 谢谢大家! userSchema.methods.isAdmin = function () { let found = false this.flags.forEach( ({type, flag}) => { if (type == "UF" &&am

我知道可能有一种方法可以缩短这个功能,新的ES6会尽我最大的努力来解决这个问题,有没有人可以缩短它,使它仍然能够正常工作?这样,也许我可以看出我做错了什么,为什么这不起作用

谢谢大家!

userSchema.methods.isAdmin = function () {
    let found = false
    this.flags.forEach(
        ({type, flag}) => {
            if (type == "UF" && flag == "ISADMIN") {
                found = true
            }
        })
    return found
}
你可以早点回来

userSchema.methods.isAdmin = function() {
    return this.flags.some(({ type, flag }) => type === "UF" && flag === "ISADMIN");
};
你可以早点回来

userSchema.methods.isAdmin = function() {
    return this.flags.some(({ type, flag }) => type === "UF" && flag === "ISADMIN");
};

啊,我在看这个。。。一旦找到匹配项,它基本上会返回true?对。迭代在第一次返回真实值时停止。啊,我在看这个。。。一旦找到匹配项,它基本上会返回true?对。迭代在第一次返回truthy值时停止。您可能正在寻找ES5某种数组方法,而不是ES6特定的方法。虽然使用一个简单的ES6 for…of循环,您可以只编写一个早期返回true,而不需要找到的变量。我建议避免使用forEach。您可能正在寻找ES5的一些数组方法,而不是ES6特有的方法。虽然使用一个简单的ES6 for…of循环,您可以只编写一个早期返回true,而不需要找到的变量。我建议避免使用forEach。