为了账号安全,请及时绑定邮箱和手机立即绑定

关于js中 indexOf的一点问题

关于js中 indexOf的一点问题

芜湖不芜 2019-04-08 11:19:28
RT在书上看见这个例子varperson={name:"Nicholas"};varpeople=[{name:"Nicholas"}];varmorepeople=[person];alert(people.indexOf(person));//-1alert(morepeople.indexOf(person));//0有点不明白为何alert(people.indexOf(person));会得到-1
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

我去看了一下那本书,首先你的代码有一个地方错了。morepeople=[person]这样才对。
在这里查找的时候,所比较的是对象。
在people这个数组中的这个{name:"Nicholas"}和person并不是同一个对象,而morepeole中和person是同一个对象(因为直接引用了它)。
因此第一个会返回-1(无法找到),第二个是0。
你可以直接进行测试,person==people[0]或者person===people[0]都是不成立的(false)。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信