最基本的写法 使用indexOf()

var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
//比较常规的语法使用indexOf来判断是否已经存在
getFileArray(arr)
function getFileArray(arr){
var array = [];
arr.forEach(e => {
if(array.indexOf(e) !== -1){
return;
}else {
array.push(e)
}
});
return array;
}

看起来性能还不错的去除方法

// 通过遍历每次被值给到数组角标 适用于数组里面数量不太的数组
var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
getFilterArray(arr)
function getFilterArray (array) {
const res = [];
const json = {};
for (let i = 0; i < array.length; i++){
const _self = array[i]; //获取迭代的数值
if(!json[_self]){ //假如json在_self这个下标没有数值,就说明这个数据没有
res.push(_self); //没有的话就push
json[_self] = 1; //同时给这和匹配不到的下标一个值,保证下次进不来
} // 这样写的话 不需要循环遍历 对性能要求更小
}
return res;
}

另类的写法

var array = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
arrtoObject(arr)
function arrtoObject(arrs) {
//var obj={};
var obj = new Object();
for (var i = 0; i < arrs.length; i++) {
obj[arrs[i]] = true;
}
objectToarr(obj)
} function objectToarr(obj){
console.log(obj);
var arr = [];
for (const i in obj) {
arr.push(i)
}
console.log(arr);
return arr
}

ES5 filter过滤函数

var array = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
function unique(array) {
var res = array.filter(function (item, index, array) {
return array.indexOf(item) === index; //因为array.indexOf返回数组的下标 如果这里的下标和index不一样说明已经存在了,就直接退出了
})
return res;
} console.log(unique(array));

ES6 Set 这简直就是为过滤而生的 过滤 排序

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]

function FilterArray(arr) {
set = new Set(arr)
let arrays = Array.from(set)
arrays.sort((a, b) => {
return a - b
})
return arrays
}
FilterArray(arr)

假如只要排序的话

我们可以用一行代码实现

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
var FilterArray = (arr) => [...new Set(arr)] //
FilterArray(arr)

最新文章

  1. h5移动端-1
  2. WPF系列:无边框窗口
  3. Struts2+Hibernate+Spring 整合示例[转]
  4. AsyncTask异步加载和Gson
  5. Spring对Hibernate的session生效期(事物提交管理)介绍
  6. perl 学习杂项笔记
  7. /proc/sysrq-trigger的功能 介绍
  8. Leetcode#166 Fraction to Recurring Decimal
  9. JavaScript的应用
  10. c - 输出 101 至 200之间的素数.
  11. Java 中类与类之间的关系
  12. fcitx
  13. GitHub版本控制
  14. Oracle 10g的空间管理
  15. JBoss7 如何用脚本 启动 和 停止
  16. SqlServer 数据库附加问题:不是主数据库文件
  17. mydumper
  18. 前端使用nginx 达到前后分离的开发目的
  19. Python机器学习笔记:XgBoost算法
  20. 第9章 应用层(3)_telnet协议和远程桌面协议RDP

热门文章

  1. RxJava 中的map与flatMap
  2. gradle中文学习资料
  3. Python unittest模块心得(一)
  4. c# 控制台输出txt文件
  5. 查看源代码HTML
  6. php解决高并发设想
  7. mongodb---js脚本操作速记
  8. Github 删除 repository
  9. 使用Fragment填充ViewPager
  10. Executor线程池框架