首页 > 解决方案 > JS/ES6:使用过滤器对象过滤数组

问题描述

我有一个包含 JS 对象的数组,例如:

const dataObjs = [
    {
      city: 'Venice',
      name: 'Mr. Smith',
      age: '42'
    },
    {
      city: 'Venice',
      name: 'Mrs. Carter',
      age: '30'
    },
    {
      city: 'Munich',
      name: 'Mr. Mueller',
      age: '30'
    },
    {
      city: 'London',
      name: 'Mr. Spaghetti',
      age: '75'
    }
]

const filterObj = {
  age: '30'
}

/*const filterObj = {
  age: '30',
  city: 'Venice'
}
*/

const theAnswerIs = dataObjs
  .filter(item => item.includes(filterObj))

如果过滤器对象只包含一个属性,则只返回一个属性(例如age = xxx)。如果传递了两个属性,则应搜索这两个属性(使用 and 运算符)。我想“包含”在这里不起作用,因为 item 不是数组...?

标签: javascriptobjectecmascript-6

解决方案


推荐阅读