如何通过JS中数组中的数据过滤对象

我有一个数组

const newChecked = ["recreational","charity"]

和一个对象

const allactivities = [
  {activity: '...',type: 'social',},{activity: '...',type: 'charity',type: 'recreational',]

而且我想获得一个新对象,该对象不包含 newChecked 中包含的类型。换句话说,newactivitiesList 应该包含 type"social" 的数据。

const newactivitiesList = allactivities.filter((item) =>
  newChecked.map((i) => {
    return item.type !== i;
  })
);
zubing 回答:如何通过JS中数组中的数据过滤对象

您可以将 Array#filterArray#includes 结合使用。

const newChecked = ["recreational","charity"]
const allActivities = [
{activity: '...',type: 'social',},{activity: '...',type: 'charity',type: 'recreational',];
const res = allActivities.filter(({type})=>!newChecked.includes(type));
console.log(res);

,

您可以使用 Array.prototype.reduce 函数创建一个新数组

const newChecked = ["recreational","charity"]

const allActivities = [
  {activity: '...',];

const newActivitiesList = allActivities.reduce((accumulator,current) => {
  if(newChecked.indexOf(current.type) === -1) {
    return accumulator.concat(current);
  } else {
    return accumulator;
  }
},[]);

console.log(newActivitiesList);

本文链接:https://www.f2er.com/9979.html

大家都在问