定义了两个数组,在数组原型链中添加了一个remove函数,现在要删除数组中指定项,如果数组元素是数字没有问题,如果数组元素是对象就remove函数就只有一个有用,什么原因?
2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
因为 A2 中没有 A1[1],所以即使看起来一样,也是删不掉的;A1 中 当然有 A1[1];
A1.remove(num);//成功,等价于A1.remove(A1[1]);
A2.remove(num);//失败,等价于A2.remove(A1[1]);
因为任意两个对象不相等,除非引用相同;
也就是说,
{x:1}!={x:1}//true
除非:
let a={x:1};
b=a;
c=a;
b!=c;//false,因为 a,b,c 指向的都是同一个对象
所以:
[{x:1}].indexOf({x:1});// -1
[a].indexOf(a);//0 ,还是上面那个 a,b,c
[a].indexOf(b);//0 ,还是上面那个 a,b,c
[a].indexOf(c);//0 ,还是上面那个 a,b,c
ps:该放代码的地方不要放截图
largeQ
TA贡献2039条经验 获得超8个赞
添加回答
举报
0/150
提交
取消
