如何按javascript中的值过滤对象数组?

Sat*_*hya 2 javascript

所以,我将过滤后的id放在一个数组中,并将所有数据放在另一个对象数组中.我想显示值数组中提到的过滤的id值.

var allData = [
    {
      id:'10',
      name:'jhon'
    },
    {
      id:'11',
      name:'lewis'
    },
    {
      id:'12',
      name:'taylor'
    },
    {
      id:'13',
      name:'adam'
    },
    {
      id:'14',
      name:'bolive'
    }
];

var addedIds = ['10', '12', '14'];
Run Code Online (Sandbox Code Playgroud)

我的javascript代码,

allData.filter(data, function (item) {
    item.map(function(list, i) {
        if (list.id.indexOf(addedIds[i]) === -1) {
            return;
        }
        console.log(list);
    });
});
Run Code Online (Sandbox Code Playgroud)

IMT*_*Man 8

这个怎么样?

Array.prototype.filter 只需要一个参数:一个传递给数组中每个项目的函数,并返回true或false,具体取决于该项是否应该包含在过滤器中.

您可以使用Array.prototype.indexOf查看字符串是否在数组中.

var allData = [{
  id: '10',
  name: 'jhon'
}, {
  id: '11',
  name: 'lewis'
}, {
  id: '12',
  name: 'taylor'
}, {
  id: '13',
  name: 'adam'
}, {
  id: '14',
  name: 'bolive'
}];

var addedIds = ['10', '12', '14'];

var filteredData = allData.filter(function(item) {
  return addedIds.indexOf(item.id) != -1;
});

console.log(filteredData);
Run Code Online (Sandbox Code Playgroud)