Javascript奇怪与对象数组和indexOf

dan*_*ods 8 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
    }
]
Run Code Online (Sandbox Code Playgroud)

对象(obj):

{
    "first_name": "Yoshi",
    "last_name": "Woodson",
    "id": 3
}
Run Code Online (Sandbox Code Playgroud)

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

Aln*_*tak 6

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

精确副本是不够的,它必须是完全相同的对象,即数组中必须有一些对象,以便:

arr[i] === obj
Run Code Online (Sandbox Code Playgroud)

您需要显示检索对象的方式.