2016-01-25 13 views
6

Hãy nói rằng tôi có các dữ liệu sau:Sử dụng gạch chân để trở về đúng hay sai với findWhere

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

Tôi muốn quay trở lại một boolean hay không activeUser thể được tìm thấy trong mảng data.location.users. Lưu ý rằng các đối tượng trong mảng location.users sẽ KHÔNG có các khóa giống với đối tượng activeUser.

Có cách nào để nhấn mạnh điều này không? Tôi có những điều sau đây.

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

Tôi đang sử dụng phương pháp findWhere hoặc là trả về một đối tượng hoặc null nếu nó không tồn tại.

+0

http://stackoverflow.com/questions/143847/best-way-to-find-if-an-item-is-in-a- mảng javascript – ClearBoth

Trả lời

6

Một tùy chọn thay thế sẽ là sử dụng ._some() method. Nó sẽ trả về một boolean dựa trên việc có tìm thấy bất kỳ điều gì không:

var userExists = _.some(data.location.users, function (user) { 
    return user.id === data.activeUser.id; 
}); 
Các vấn đề liên quan