基于id列表从对象获取值的有效方法

时间:2017-02-22 07:41:11

标签: javascript

我有users的列表:

users: Array<any> = [{id:1,name:'A'},{id:2,name:'B'},{id:3,name:'C'}];

this.selectedUsers = [1,2];

如何从users阵列中找到id数组中找到selectUsers的所有对象?

2 个答案:

答案 0 :(得分:2)

您可以将indexOf与过滤器一起使用。

this.users.filter(user => this.selectedUsers.indexOf(user.id ) > -1)

答案 1 :(得分:0)

我认为这应该做你想要的:

var found = this.users.filter(
    item => this.selectedUsers.some(id => item.id == id)
)

<强>更新

var found = this.users.filter(
    item => this.selectedUsers.some(id => item.id == id)
).forEach(item => {
  item.label = item.name;
  item.name = undefined;
});

var found = this.users.filter(
    item => this.selectedUsers.some(id => item.id == id)
).map(item => {id: item.id, label: item.name});