javascript - 使用多个条件过滤数组

标签 javascript arrays

数组看起来像

products = [
    {
      "id": "5c94aa7b7a37631ce2a97a72",
      "material": "5c9485d37804946bc487ce59",
    },
    {
      "id": "5c94aa7b7a37631ce2a97a72",
      "material": "5c94862a7804946bc487ce5e",
    },
    {
      "id": "5c94aa7b7a37631ce2a97a72",
      "material": "5c9486397804946bc487ce61",
    },
    {
      "id": "5c94a0a87a37631ce2a979de",
      "material": "5c9485d37804946bc487ce59",
    },
    {
      "id": "5c94a0a87a37631ce2a979de",
      "material": "5c94862a7804946bc487ce5e",
    },
    {
      "id": "5c94a0a87a37631ce2a979de",
      "material": "5c9486397804946bc487ce61",
    }
  ]

当我尝试仅删除带有 id="5c94aa7b7a37631ce2a97a72"material="5c9485d37804946bc487ce59"

的项目时

我使用过滤功能

filtered = products.filter(x => x.id !== id && x.material !== material);

它会删除具有这些 ID 和 Material 的所有产品。在此函数中设置条件的正确方法是什么?

最佳答案

只需使用 || 而不是 &&,这样两个条件都必须为 false 才能进行过滤器 回调返回false:

const products = [{
    "id": "5c94aa7b7a37631ce2a97a72",
    "material": "5c9485d37804946bc487ce59",
  },
  {
    "id": "5c94aa7b7a37631ce2a97a72",
    "material": "5c94862a7804946bc487ce5e",
  },
  {
    "id": "5c94aa7b7a37631ce2a97a72",
    "material": "5c9486397804946bc487ce61",
  },
  {
    "id": "5c94a0a87a37631ce2a979de",
    "material": "5c9485d37804946bc487ce59",
  },
  {
    "id": "5c94a0a87a37631ce2a979de",
    "material": "5c94862a7804946bc487ce5e",
  },
  {
    "id": "5c94a0a87a37631ce2a979de",
    "material": "5c9486397804946bc487ce61",
  }
];
console.log(products.length);
const id = "5c94aa7b7a37631ce2a97a72";
const material = "5c9485d37804946bc487ce59";
const filtered = products.filter(x => x.id !== id || x.material !== material);
console.log(filtered.length);
console.log(filtered);

关于javascript - 使用多个条件过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55392650/

相关文章:

javascript - 向表单添加样式

arrays - 在 Go 中测试值的类型

ruby - 带小数位的范围

javascript - 在 JavaScript 中分配给变量时使用命名函数的目的是什么?

php - 将序列分段到最大随机性(数组,任何语言)

c - 在 C 中,为什么 (int*)&x[k] 对于二维数组 x 和 (int*)x[k] 一样好用?

java - Java Arrays.hashcode() 的 hashcode 实现是否均匀分布

javascript - 如何使用 PHP 存储选定的日期选择器 javascript

javascript - 如何将 Moment.js 日期转换为用户本地时区?

javascript - 使用百分比与背景位置