使用没有嵌套循环js的数组过滤对象数组

时间:2015-11-02 15:03:21

标签: javascript arrays object

我一直试图找出最简单的方法来过滤对象数组而不使用嵌套循环。 我发现这个post使用.filter函数关于使用另一个数组过滤数组但我没有弄清楚如何使用相同的模式实际访问对象数组中对象内的正确键 给定下一个对象数组:

[ { technology: 'CHARACTER', score: -1 },
{ technology: 'PRESSURE_RELIEF', score: 2 },
{ technology: 'SUPPORT', score: 3 },
{ technology: 'MOTION_ISOLATION', score: 2 },
{ technology: 'TEMPERATURE_MANAGEMENT', score: -1 },
{ technology: 'COMFORT', score: 2 } ]

我想使用以下数组来过滤我不需要的数组:

[CHARACTER, MOTION_ISOLATION, TEMPERATURE_MANAGEMENT]

是否可以在不使用嵌套循环的情况下访问它?如果不可能,我也愿意接受建议。

1 个答案:

答案 0 :(得分:5)

您可以将.filter.indexOf一样使用



var condition = ['CHARACTER', 'MOTION_ISOLATION', 'TEMPERATURE_MANAGEMENT'];

var data = [ 
  { technology: 'CHARACTER', score: -1 },
  { technology: 'PRESSURE_RELIEF', score: 2 },
  { technology: 'SUPPORT', score: 3 },
  { technology: 'MOTION_ISOLATION', score: 2 },
  { technology: 'TEMPERATURE_MANAGEMENT', score: -1 },
  { technology: 'COMFORT', score: 2 } 
];

var result = data.filter(function (el) {
  return condition.indexOf(el.technology) < 0;
});

console.log(result);
&#13;
&#13;
&#13;