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

mau*_*hez 1 javascript arrays object

我一直试图找出最简单的方法来过滤一个对象数组而不使用嵌套循环.我发现这篇文章使用了.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 } ]
Run Code Online (Sandbox Code Playgroud)

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

[CHARACTER, MOTION_ISOLATION, TEMPERATURE_MANAGEMENT]
Run Code Online (Sandbox Code Playgroud)

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

Ale*_* T. 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);
Run Code Online (Sandbox Code Playgroud)