使用下划线可以使用findWhere返回true或false

cus*_*ice 6 javascript underscore.js

假设我有以下数据:

var data = {
    activeUser: { id: 3, name: 'Joe', something: 'else' },
    location: {
        users: [{id: 1}, {id: 2}, {id: 3}]
    }
};
Run Code Online (Sandbox Code Playgroud)

我想返回一个布尔值,无论是否activeUser可以在data.location.users数组中找到它.请注意,location.users数组中的对象将不具有与activeUser对象相同的键.

有没有正常的下划线方式来做到这一点?我有以下内容.

var userExists = (_.findWhere(data.location.users, {id: data.activeUser.id})) ? true : false;
Run Code Online (Sandbox Code Playgroud)

我正在使用该findWhere方法返回一个对象,如果它不存在则返回null.

Jos*_*ier 6

一种替代选择是使用该._some()方法.它将根据是否找到任何内容返回一个布尔值:

var userExists = _.some(data.location.users, function (user) {
  return user.id === data.activeUser.id;
});
Run Code Online (Sandbox Code Playgroud)