对象数组和 indexOf 的 Javascript 奇怪之处

标签 javascript arrays object indexof

不太明白这里发生了什么。给定数组 (arr):

[
    {
        "first_name": "Dan",
        "last_name": "Woodson",
        "id": 1
    },
    {
        "first_name": "Jen",
        "last_name": "Woodson",
        "id": 2
    },
    {
        "first_name": "Yoshi",
        "last_name": "Woodson",
        "id": 3
    }
]

和对象(obj):

{
    "first_name": "Yoshi",
    "last_name": "Woodson",
    "id": 3
}

为什么 arr.indexOf(obj) 会返回 -1(特别是因为我在函数的前面使用它的“id”参数从数组中检索了对象)?

最佳答案

Array.indexOf() 仅在提供的对象与您放入的对象完全相同时才对对象起作用。

精确的复制是不够的,它必须是完全相同的对象,即数组中必须有这样的对象:

arr[i] === obj

您需要展示如何检索对象。

关于对象数组和 indexOf 的 Javascript 奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618200/

相关文章:

javascript - Cocoon.js & Three.js : Improving performance

c++ - C++中的巨大二维数组

c# - 数组的反序列化总是给出一个空数组

java - POJO 是反面向对象(OO)的吗?

Javascript对象多次循环,顺序相同?

javascript - 如何在一个循环中迭代以比较javascript中的两个对象

javascript - 如何在我的网页中使用按钮操作添加书签?

javascript - 为什么 Array + Array 等于空字符串?

javascript - 下拉列表已更改

javascript - 如何将复杂数组声明为另一个属性 Typescript 的属性