鍍金池/ 問答/HTML/ 數(shù)組刪除指定元素問題。

數(shù)組刪除指定元素問題。

定義了兩個數(shù)組,在數(shù)組原型鏈中添加了一個remove函數(shù),現(xiàn)在要刪除數(shù)組中指定項,如果數(shù)組元素是數(shù)字沒有問題,如果數(shù)組元素是對象就remove函數(shù)就只有一個有用,什么原因?
圖片描述
圖片描述

回答
編輯回答
話寡

string 和 number 是通過值來判斷,而對象一般通過指針指向的內(nèi)存地址來判斷,你比較的兩個對象的指針指向位置不一樣,所以返回為false。我們判斷兩個對象是否相等,一般遍歷兩個對象的屬性,看他們是否相等,這個你可以參考loadsh的isEqual方法的實現(xiàn)。

2018年6月2日 09:31
編輯回答
汐顏

因為 A2 中沒有 A1[1],所以即使看起來一樣,也是刪不掉的;A1 中 當(dāng)然有 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:該放代碼的地方不要放截圖

2017年4月20日 16:24