React多条件数组过滤问题:如何精准删除指定元素
解决数组过滤范围过大的问题
你的需求是仅移除domain为domain1.com且slug为monitor的元素,正确的过滤逻辑应该是保留所有不满足这个组合条件的元素,可以用两种方式实现:
方式一:取反组合条件
const filteredArray = array.filter(item => !(item.domain === 'domain1.com' && item.slug === 'monitor'));
方式二:逻辑或拆分条件
const filteredArray = array.filter(item => item.domain !== 'domain1.com' || item.slug !== 'monitor');
为什么你之前的写法会导致数组为空?
你用了item.slug !== 'monitor' && item.domain !== 'domain1.com',这个条件要求元素同时满足“slug不是monitor”并且“domain不是domain1.com”——但你的数组里,domain1.com下的monitor-1不满足“domain不是domain1.com”,domain2.com下的monitor不满足“slug不是monitor”,所以所有元素都被过滤掉,结果为空数组。
内容的提问来源于stack exchange,提问作者webthesign
相关产品推荐
相关产品推荐

