过滤器数组方法javascript

时间:2017-02-02 15:18:41

标签: javascript filter

你可以告诉我为什么我的剧本被打破了吗? 这是Udemy课程中的练习。 您只需要返回具有管理员级别访问权限的用户

var users = [
 { id: 1, admin: true },  
 { id: 2, admin: false },
 { id: 3, admin: false },
 { id: 4, admin: false },
 { id: 5, admin: true },
];

var filteredUsers;

function isAdmin(array, property){
     return array.filter(function(key){
        return key[property] === 'true';
})
}

filteredUsers = isAdmin(users, 'admin');

谢谢

2 个答案:

答案 0 :(得分:2)

您需要针对布尔值进行测试,因为您的数据的值为truefalse

return key[property] === true;
//                       ^^^^

function isAdmin(array, property) {
    return array.filter(function (key) {
        return key[property] === true;
        //                       ^^^^
    });
}

var users = [{ id: 1, admin: true }, { id: 2, admin: false }, { id: 3, admin: false }, { id: 4, admin: false }, { id: 5, admin: true }],
    filteredUsers = isAdmin(users, 'admin');

console.log(filteredUsers);

答案 1 :(得分:0)

)你的问题是你正在使用3等唱(" ===")来测试这个属性。这是一个链接,其中包含更多细节,解释了以下区别:

https://stackoverflow.com/a/523650/5235299