JS数组去重 包含去除多个 NaN

2018-06-24 01:57:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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]
 
 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:angular+ionic前后端分离开发项目中的使用

下一篇:文件的上传与下载、图片的上传和读取