为什么过滤器返回相同的数组?

大卫·扎戈尔斯基

我需要使用过滤器删除一个项目,但它返回相同的数组......我是新来的反应......所以请记住答案:)

* 方法 *

removeItemHandler = (id) => {
    if (this.state.selectedProducts.length <= 0){
      return
    }
      let carsSelected = this.state.selectedProducts.filter(item => {
        return item !== id})
        debugger;
        console.log(`item removed`, carsSelected);}

调试器(点击了 3 个项目)

  removeItemHandler = (id) => { ***id = {id: 2, name: "Bugatti", price: 3200000, description: "Extremely Fast", total: 0, …}
***
    if (this.state.selectedProducts.length <= 0){
      return
    }
      let carsSelected = this.state.selectedProducts.filter(item => ***{ carsSelected = (3) [{…}, {…}, {…}]***

        return item !== id}) ***id = {id: 2, name: "Bugatti", price: 3200000, description: "Extremely Fast", total: 0, …}***
        debugger;

console.log 返回相同的数组

哈伦·耶尔马兹

你应该过滤item.id而不是item

let carsSelected = this.state.selectedProducts.filter(item => item.id !== id.id)
//                                                                 ^^

请注意,您将对象作为id参数传递你正在比较两个对象。这在 JavaScript 中并不容易做到。对象平等不是它看起来的样子。例如:

var firstObject = {
    id: 1,
    foo: "foo",
    bar: "bar"
};

var secondObject = {
    id: 1,
    foo: "foo",
    bar: "bar"
};


console.log(firstObject === secondObject); // with triple "="
// Output: false

console.log(firstObject == secondObject);  // with double "="
// Output: false

即使两个对象具有相同的属性和相同的值,它们也不是相同的对象。

您可以比较它们的唯一标识符,而不是比较整个对象

进一步阅读:JavaScript 中的对象比较

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么过滤器和过滤器映射(与 Servlet 相同)是分开定义的?

为什么这个简单的过滤器返回一个空数组?

为什么数组助手过滤器返回空值

为什么过滤器不学习相同的功能

嵌套过滤器返回空数组

JavaScript过滤器返回空数组

过滤器返回空数组

Javascript过滤器返回空数组

为什么过滤器基于依赖对?

为什么交替查询过滤器顺序不能给我相同的结果

为什么在 CNN 深度学习中基于相同的图像对过滤器进行不同的训练?

为什么过滤器无法将结构数组转换为协议类型的数组?

过滤器未返回过滤后的数组

不返回过滤值的对象的过滤器数组

为什么我的使用日期的Django过滤器查询未返回预期结果?

在使用前缀过滤器扫描表后,为什么HBase API返回空集?

为什么我的graphQL查询返回没有“ where”过滤器的结果?

为什么此XQuery过滤器返回不想要的元素?

为什么LOG过滤器返回黑色背景图像?

为什么Get-MobileDevice不基于此过滤器返回设备?

为什么使用过滤器计算会返回此结果?

为什么“汽车%>%过滤器(汽缸== 8,mpg> 18)在R中返回错误的值?

为什么 skimage 均值过滤器不适用于浮点数组?

为什么对象数组中的过滤器在打字稿中不起作用

为什么过滤器从我的数组中删除索引0

为什么这些rsync过滤器args在数组中传递时在bash中失败?

RX JS过滤器方法不返回过滤器数组

数组过滤器返回奇怪的结果

反应本机过滤器数组返回未定义