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