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 ...
随机推荐
- Jmeter命令行运行配置环境变量
Jmeter命令行运行配置环境变量 在打开jmeter GUI界面时会弹出cmd命令窗口提示:压测时不要用GUI,要用命令行 在cmd命令行里面运行jmeter的话,需要配置jmeter环境变量,下面 ...
- 在本地搭建hyperledger fabric 网络
参考了官方文档,直接就可以了https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html 很好用 ➜ ~ cd $GOP ...
- Python装饰器之functools.wraps的作用
# -*- coding: utf-8 -*- # author:baoshan def wrapper(func): def inner_function(): pass return inner_ ...
- Python3基础 函数 __name__ 得到引用所指向的真正名字
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- 解决python写入mysql中datetime类型遇到的问题
解决python写入mysql中datetime类型遇到的问题 刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于 ...
- easyui datagrid 中序列化后的日期格式化
1.在easyui datagrid 中序列化后的日期显示为:/Date(1433377800000)/ 2.格式化后的显示为: 2015-06-04 08:30:00 3.使用代码如下: 3.1. ...
- 最常见的Java面试题及答案汇总(一)
Java 基础部分 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java ...
- 学习记录-java基础部分(一)
学习记录-java基础部分(一) 参考:GitHub上的知名项目:javaGuide : https://github.com/Snailclimb/JavaGuide/blob/master/doc ...
- JAVA代码:生成一个集合,自定义大小,100以内的随机整数
JAVA代码:生成一个集合,自定义大小,100以内的随机整数 方法一:(Random类) package com.dawa.test; import java.util.ArrayList; impo ...
- LeetCode 8. 字符串转换整数 (atoi)(String to Integer (atoi))
8. 字符串转换整数 (atoi) 8. String to Integer (atoi) 题目描述 LeetCode LeetCode8. String to Integer (atoi)中等 Ja ...