javascript - 对象数组的过滤函数

标签 javascript arrays filter filtering

我需要实现过滤对象数组的函数。 Filters 数组由具有属性名称和要针对用户中给定属性进行过滤的值的对象组成。

示例:

var filters = [
  {
    column: 'username',
    value: 'test user'
  },
  {
    column: 'name',
    value: 'test name'
  }
]

var users = [
    {
      name: 'test name user',
      username: 'some test user'
    },
    {
      name: 'another name',
      username: 'another username'
    }
]

// filter logic

console.log(users); // [{'name': 'test name user', 'username': 'some test user'}]

最佳答案

您可以迭代用户和 Array#filter 的列表通过使用 Array#some 进行迭代(或者 - 如果至少有一个匹配)或 Array#every (并且 - 全部都必须匹配)。

var filters = [{"column":"username","value":"test user"},{"column":"name","value":"test name"}];

var users = [{"name":"test name user","username":"test user"},{"name":"another name","username":"another username"}];

var result = users.filter(function(user) {
  return filters.some(function(filter) { // use some for Or, and every for And
    return user[filter.column] === filter.value;
  });
});

console.log(result);

关于javascript - 对象数组的过滤函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45075040/

相关文章:

c - 初始化作为结构数组索引的 C 结构

C - 为什么我的数组被覆盖了?

filter - 长纬度坐标运动的卡尔曼滤波

unit-testing - 带有模拟服务的单元测试过滤器

javascript - jQuery 更改元素属性并返回编辑后的 ​​Html 源?

javascript - 如何在 angular2 中使用局部变量值?

javascript - 在javascript弹出窗口中显示php页面

javascript - 应用程序部署到 Meteor.com 后就会停止工作?

python - 将代码点的 numpy 数组与字符串相互转换

javascript - 如何过滤JSON数据中的价格范围: Javascript or jQuery