前端之JS-数组去重
来源:互联网 发布:网络任务平台 编辑:程序博客网 时间:2024/06/18 10:52
方法1:简单粗暴的ES6方法Set,Set数据结构,它类似于数组,其成员的值都是唯一的。var arr = [1, 2, 3, 2, 1, 3];console.log(new Set(arr))//打印结果:Set(3) {1, 2, 3}方法2:使用filter过滤函数去重。var arr = [1, 2, 3, 1, 2, 3];console.log(arr.filter((v, i, arr) => arr.indexOf(v) === i))//打印结果:(3) [1, 2, 3]方法3:遍历数组法。function unique(array) { var n = []; //一个新的临时数组 //遍历当前数组 for (var i = 0; i < array.length; i++) { if (n.indexOf(array[i]) == -1) n.push(array[i]); //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 } return n;} console.log(unique([1, 2, 3, 1, 2, 3])) //打印结果:(3) [1, 2, 3]if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el) { for (var i = 0, n = this.length; i < n; i++) { if (this[i] === el) { return i; } } return -1; }}方法4:利用splice()方法直接在原数组进行操作。 双层循环,外层循环元素,内层循环时比较值。值相同时,则删去这个值。删除元素之后,需要将数组的长度也减1。Array.prototype.unique = function () { var arr = this, i, j, len = arr.length; for (i = 0; i < len; i++) { for (j = i + 1; j < len; j++) { if (arr[i] == arr[j]) { arr.splice(j, 1); len--; j--; } } } return arr;};var a = [1, 2, 3, 1, 2, 3];var b = a.unique();console.log(b); //打印结果:(3) [1, 2, 3]方法5:利用对象的属性不能相同的特点进行去重 Array.prototype.unique = function () { var arr = this, i, obj = {}, result = [], len = arr.length; for (i = 0; i < arr.length; i++) { if (!obj[arr[i]]) { //如果能查找到,证明数组元素重复了 obj[arr[i]] = 1; result.push(arr[i]); } } return result;};var a = [1, 2, 3, 1, 2, 3];var b = a.unique();console.log(b); //打印结果:(3) [1, 2, 3]方法6:数组递归去重 Array.prototype.unique = function () { var arr = this, len = arr.length; arr.sort(function (a, b) { //对数组进行排序才能方便比较 return a - b; }) function loop(index) { if (index >= 1) { if (arr[index] === arr[index - 1]) { arr.splice(index, 1); } loop(index - 1); //递归loop函数进行去重 } } loop(len - 1); return arr;};var a = [1, 2, 3, 1, 2, 3];var b = a.unique();console.log(b); //打印结果:(3) [1, 2, 3]
阅读全文
0 0
- 前端之JS-数组去重
- 前端效率优化之数组去重
- 前端面试题之数组去重
- 前端数组去重
- JS 数组去重
- js数组去重
- js 数组去重
- js 数组去重
- js数组去重
- js 数组去重
- js数组去重
- JS 数组去重
- //js数组去重
- js-数组去重
- js数组去重
- js 数组去重
- js数组去重
- JS 数组去重
- HPU1412-- QAQ & 君临天下 || 天行九歌(查询L到R天里的sum直接输出 sum[R]
- HDOJ2187悼念512汶川大地震遇难同胞(贪心,硬币问题)
- 使用MyBatis Generator自动创建代码
- const与#define的比较
- Redis事务
- 前端之JS-数组去重
- 线程阻塞工具:LockSupport
- 本渣的Python学习之路——2(基本数据类型)
- UVA 10474
- 网易2017内推 [编程题]独立的小易@Java
- Brother打印机的安装
- Log4j配置文件的加载
- 01.Python基础知识
- SqueezeNet网络的OHEM