JS數組去重 包含去除多個 NaN


Array.prototype.uniq = function () {
  var arr = [];
  var flag = true;
  this.forEach(function(item) {

    // 排除 NaN (重要!!!) NaN 和自身不相等
    // 除了NaN 其他數據 和 自己都 相等
    if (item != item) {
       // 只有第一次找到NaN 把他放進數組里面
       flag && arr.indexOf(item) === -1 ? arr.push(item) : '';
       flag = false;
           } else  {
             arr.indexOf(item) === -1 ? arr.push(item) : ''
           }
        });
         return arr;
}
 
var arr = [NaN,NaN,NaN,1,2,{},{},null,null,undefined,undefined];
var uniqueArr = arr.uniq();
console.log(uniqueArr); //  [NaN, 1, 2, {…}, {…}, null, undefined]


// Es6 一行代碼搞定
var uniqueArr2 = Array.from(new Set(arr));
console.log(uniqueArr2); //  [NaN, 1, 2, {…}, {…}, null, undefined]
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM