題目描述
為 Array 對象添加一個去除重復項的方法
輸入
[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]
輸出
[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a']
解決
Array.prototype.uniq = function () { let res = [] let hasNaN = false this.forEach(e => { // 循環數組 if(res.indexOf(e) === -1) { // res中沒有就添加 if(e !== e) { // 判斷是否為NAN,因為精度的原因,NaN === NaN返回false if(!hasNaN) { res.push(e) hasNaN = true } } else { res.push(e) } } }) return res }