關鍵是indexof的用法:
indexof是判斷resarr陣列中的值和當前的值有沒有相同的,如果有相等的會返回那個位置,沒有相同的返回-1,這裡返回-1的意思是沒有相同的,也就是resarr陣列裡還沒有當前的數。再之後再遇到有相同的就不會返回-1了,也就不會繼續執行if裡面的了。array.prototype.uniq = function ()
}else
}
}
return resarr;
}
nan 即not a number
, 不是乙個數字,js中number資料型別中除了浮點型和整數型還有乙個特殊的值 nan。
nan, 它是用來表示是否屬於number型別的一種狀態: 是或否。而不是乙個確切的值。
當乙個表示式返回了nan 時,表示該表示式中存在不可以轉化的變數,並返回了無效的結果,並不是返回了乙個確切的值。
如果非要說nan是乙個值得話,那麼 nan 就是除過數字的任意值,但絕不是確切的某乙個值.
所以 nan != nan , 因為它是乙個範圍,而不能代表乙個確定的值
為 Array 物件新增乙個去除重複項的方法
思路 第一步 先定義乙個空陣列用來存數值 var a 第二步 利用這個條件判斷 a indexof this i 1 此條件成立,就將當前陣列值放在空陣列a中 a push this i 不過這裡有乙個太特殊的nan,nan nan,利用indexof 方法不成立f,所以這裡我們需要做個判斷 if ...
為Array物件新增乙個去除重複項的方法
false,true,undefined,null,nan,0,1,a a nan uniq false,true,undefined,null,nan,0,1,a array.prototype.uniq function else return arr 我們只需要在陣列上直接呼叫 uniq 方法...
為 Array 物件新增乙個去除重複項的方法
題目描述 為 array 物件新增乙個去除重複項的方法 示例1 輸入 false,true,undefined,null,nan,0,1,a a nan 輸出 false,true,undefined,null,nan,0,1,a 一道很有意思的題目,注意點很多。首先 和 是不相等的,nan和nan...