在 findWhere 中使用下划线 return true 或 false

Use underscore to return true or false with findWhere

假设我有以下数据:

var data = {
    activeUser: { id: 3, name: 'Joe', something: 'else' },
    location: {
        users: [{id: 1}, {id: 2}, {id: 3}]
    }
};

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

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

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

我正在使用 findWhere 方法来 return 一个对象,如果它不存在则为 null。

另一种选择是使用 ._some() method。它将 return 一个基于是否找到任何东西的布尔值:

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