js常用的数组去重方法
给出以下数组
var arr1 = new Array('1','2','3','3','5','4','5','6','5','5','88');
实现对数组的去重
1、 双重for循环去重
Array.prototype.Duplicate = function() {
let arr = this;
for(let i = ; i < arr.length-; i++) {
for (let j = i+; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, );
j--; // 删除元素之后,需要将数组的长度也减1,否则无法去除掉后面相同的值.
};
};
};
return arr;
}
2、 利用递归调用去重
Array.prototype.Duplicate = function() {
let arr = this;
arr.sort();
function loop(index) {
if (index > ) {
if (arr[index] == arr[index-]) {
arr.splice(index, );
};
loop(index-);
};
};
loop(arr.length-);
return arr;
}
3、 利用对象去重
Array.prototype.Duplicate = function() {
let arr = this;
let obj = {}
let arr2 = []
for (let i = ; i < arr.length; i++) {
if (!obj[arr[i]]) {
obj[arr[i]] = true;
arr2.push(arr[i]);
}
};
return arr2;
}
4、 利用indexOf
Array.prototype.Duplicate = function() {
let arr = this;
let arr2 = []
for (let i = ; i < arr.length; i++) {
if (arr2.indexOf(arr[i]) == -) {
arr2.push(arr[i]);
}
};
return arr2;
}
5、 利用es6 includes方法判断
Array.prototype.Duplicate = function() {
let arr = this;
let arr2 = [];
for (let i = ; i < arr.length; i++) {
if (!arr2.includes(arr[i])) {
arr2.push(arr[i]);
}
}
return arr2
}
console.log(arr1.Duplicate().toString());
// 1,2,3,5,4,6,88
js常用的数组去重方法的更多相关文章
- Js里面的数组去重方法
去掉数组里面重复的有很多种,我这里就说一种比较简单的吧. var arr=[23,33,44,33,44,66,44,55,44,4,44,33,23]; for(var i=0;i<arr.l ...
- js中数组去重方法及性能对比
js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...
- JS实现数组去重方法大总结
js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...
- 原声js数组去重方法
数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...
- JavaScript 数组去重 方法汇总
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- js数组去重方法分析与总结
数组去重经常被人拿来说事,虽然在工作中不常用,但他能够很好的考察js基础知识掌握的深度和广度,下面从js的不同阶段总结一下去重的方法. ES3阶段 该阶段主要通过循环遍历数组从而达到去重的目的 多次循 ...
- JS实现数组去重方法整理
前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...
- JS常见的几种数组去重方法
总结一下JS中用到的数组去重的方法 方法一: 该方法利用对象的属性值不能相同: function arrDelLikeElement (array) { const result = []; con ...
- js 数组去重方法汇总
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 【mybatis源码学习】mybatis的sql语句映射
一.重要的接口和类 org.apache.ibatis.scripting.LanguageDriver //语言驱动org.apache.ibatis.scripting.xmltags.XMLLa ...
- excel矩阵运算操作-转置 行列式 相乘 逆阵
excel矩阵运算操作-转置 行列式 相乘 逆阵 https://jingyan.baidu.com/article/154b463128e13928ca8f41a4.html Excel中矩阵的相关 ...
- [LeetCode] 313. Super Ugly Number 超级丑陋数
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all ...
- [LeetCode] 380. Insert Delete GetRandom O(1) 插入删除获得随机数O(1)时间
Design a data structure that supports all following operations in average O(1) time. insert(val): In ...
- Java之Java程序的基本结构
Java的基本结构是 /** * 可以用来自动创建文档的注释 */ public class Hello { public static void main(String[] args) { // 向 ...
- 超好用的K8s诊断工具:kubectl-debug
在K8s环境部署应用后,经常遇到需要进入pod进行排错.除了查看pod logs和describe方式之外,传统的解决方式是在业务pod基础镜像中提前安装好procps.net-tools.tcpdu ...
- 使用consul实现分布式服务注册和发现--redis篇
安装consul client consul 客户端检脚本 ====================================================================== ...
- 进入docker 内部
$ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
- 1206 雅礼集训D2题解
A \(two\) \(1.1\) \(Description\) 你有两棵有根树,每棵各有 n 个顶点.让我们用整数 1 到 n 给每棵树的顶点编 号.两棵树的根都是顶点 1.第一棵树的边都都是蓝色 ...
- 【LeetCode】整数反转【不能借助辅助空间,需要处理溢出】
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: ...