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]
 
 

最新文章

  1. sparkR读取csv文件
  2. mvc中form表单提交的几种形式
  3. File类-文件基本操作
  4. 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
  5. C++内存对齐的理解
  6. Gradle自定义你的BuildConfig
  7. tooltip
  8. [开发笔记]-jQuery获取checkbox选中项等操作及注意事项
  9. css笔记——区分css3中的transform transition animation
  10. Cassandra1.2文档学习(7)—— 规划集群部署
  11. CriticalFinalizerObject的作用
  12. IT该忍者神龟Jquery小工具easyUI物业摘要召回
  13. java 关于打断点
  14. centos7下kubernetes(3。部署kubernetes)
  15. CSS3中和动画有关的属性transform、transition 和 animation
  16. 使用JSON Web Token设计单点登录系统
  17. unity3d中设计模式的学习<一>:泛型单例
  18. OrCAD设置原理图页面大小
  19. http://www.oschina.net/question/1019034_153316
  20. REST API (更新文档)

热门文章

  1. IT关键词,面试知识问与答
  2. caffe:使用C++来提取任意一张图片的特征
  3. angular4父组件向子组件传值,子组件向父组件传值的方法
  4. js滑动提示效果
  5. 微信小程序分享朋友圈的实现思路与解决办法
  6. Java从入门到精通一步到位!
  7. Eclipse中使用GIT将已提交到本地的文件上传至远程仓库
  8. Pyhton学习——Day29
  9. CentOS 7.5安装pycharm
  10. [学习笔记] CS131 Computer Vision: Foundations and Applications:Lecture 1 课程介绍