Javascript判断在对象数组在字符串数组中是否存在

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);

思路

使用filter函数进行条件过滤,而后,在使用indexOf函数判断是在数组中存在。这样就不用嵌套迭代了。数组

参考

filtering an array of objects using an array without nested loops js 函数