这段代码没有明显的语法错误,但它可能会返回预期之外的结果。

问题在于条件语句中的逻辑运算符。使用逻辑或 (||) 时,只有两个条件都为假时才会返回假。因此,当 item.itemValue 的值为 '' 时,它不等于 '[]',因此第一个条件为真,导致整个条件语句为真。同样地,当 item.itemValue 的值为 '[]' 时,它不等于 '',因此第二个条件为真,导致整个条件语句为真。这意味着,即使 item.itemValue 的值为空字符串或空数组,它也会被包含在新数组中。

为了解决这个问题,应该使用逻辑与 (&&) 替代逻辑或 (||)。使用逻辑与时,只有两个条件都为真时才会返回真。因此,只有当 item.itemValue 的值既不是空字符串也不是空数组时,才会将其包含在新数组中。

修正后的代码如下:

const newArr = arr.filter(item => item.itemValue !== '' && item.itemValue !== '[]')
JavaScript 数组过滤:使用 `filter()` 时避免常见错误

原文地址: https://www.cveoy.top/t/topic/oLDJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录