Javascript 某些方法嵌套在 For 中

标签 javascript typescript functional-programming

下面的代码我试图查看其中一个 CrmRoles 是否在 rolesToVerify 列表中,但是当我遍历它时,我一直为 roleToVerify 获取“undefined”。

const rolesToVerify = ["System Administrator", "Payroll"]

function userHasOneOrMoreRoles(currentUserRoles: CrmRole[], rolesToVerify: String[]) {
    for (let currentUserRole of currentUserRoles) {
        return rolesToVerify.some(roleToVerify =>
           currentUserRole.Name === roleToVerify);
    }
    return false;
    }

最佳答案

你在一个循环中返回,独立于任何条件或任何东西。没办法,您的循环会通过第一次迭代。

//And you can shorten
rolesToVerify.some(roleToVerify => currentUserRole.Name === roleToVerify);
//to
rolesToVerify.includes(currentUserRole.Name);

所以要么

function userHasOneOrMoreRoles(currentUserRoles: CrmRole[], rolesToVerify: String[]) {
    for (let currentUserRole of currentUserRoles) {
        if(rolesToVerify.includes(currentUserRole.Name))
            return true;
    }
    return false;
}

function userHasOneOrMoreRoles(currentUserRoles: CrmRole[], rolesToVerify: String[]) {
    return currentUserRoles.some(currentUserRole => rolesToVerify.includes(currentUserRole.Name));
}

关于Javascript 某些方法嵌套在 For 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874277/

相关文章:

javascript - .change() 和 .on ("change"之间有区别吗?

javascript - 使用 websocket 时的奇怪行为

javascript - 在套接字客户端和服务器中访问时,socket.io-stream 也面临 404 问题

angular - 测试ActivatedRoute.paramMap而不模拟路由器

angular - Agular2 + typescript + 文件上传

Java 8 扩展函数接口(interface)并组合它们

php - 代码接收是否正常工作?

javascript - 从字段中删除 GUID(如果存在)

javascript - λ : folktale data. 任务 - 应用未知数量的任务

javascript - 注入(inject)在 typescript 中不起作用