不太明白这里发生了什么。给定数组 (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/