总结一下JS中用到的数组去重的方法

 方法一:

该方法利用对象的属性值不能相同:

function arrDelLikeElement (array) {
const result = [];
const obj = {};
for(let i in array){
if(!obj[array[i]]){
result.push(array[i]);
obj[array[i]] = i;
}
}
return result;
}
arr = arrDelLikeElement(arr);

方法二:

该方法使用ES6中的映射方法:

function arrayDelLikeElement(array) {
//将传入的数组参数作为javascript中的创建一个Set(集合)对象的方法中的参数
var arrSet = new Set(array);
//定义一个空数组用来接收集合循环遍历的值
var arrEmpty = [];
for (const value of arrSet) {
arrEmpty.push(value);
}
array=arrEmpty;
return array
}
arrLike = arrayDelLikeElement(arr);

方法三:

该方法使用递归调用

var arr=[1,6,1,2,2,1,3,1,3,4,5,6];
// 第一步:将数组进行排序
arr = arr.sort(function(a,b){
return a-b
});
// 第二步编写递归函数
function mul (arr , i) {
if(i>=1){
if(arr[i] === arr[i-1]){
arr.splice(i,1);
}
mul(arr,(i-1));
}
return arr;
}
mul(arr , arr.length);
console.log(arr)

以上方法时常用的方法,后续持续更新新的方法,如果您有更好的方法,可以留言评论,咱们互相讨论!!!

JS常见的几种数组去重方法的更多相关文章

  1. 亲测有效JS中9种数组去重方法

    码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14555831.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...

  2. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  3. JavaScript 数组去重 方法汇总

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  4. JS实现数组去重方法大总结

    js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...

  5. js中数组去重方法及性能对比

    js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...

  6. 原声js数组去重方法

    数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...

  7. javaScript数组去重方法

    在JAvascript平时项目开发中经常会用到数组去重的操作.这时候就要用到JS数组去重的方法了. demo1: 第一种:JS数组去重操作方法是利用遍历原数组,利用数组的indexOf()方法来来判断 ...

  8. JS实现数组去重方法整理

    前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...

  9. JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

    壹 ❀ 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但 ...

随机推荐

  1. leetcode-830-Positions of Large Groups

    题目描述: In a string S of lowercase letters, these letters form consecutive groups of the same characte ...

  2. sql92和sql99

    sql1992sql分类 1.笛卡尔积 (表乘表) 2.等值连接 表的连接条件使用“=” 3.非等值连接 表的连接条件使用“>.>=. <.<=.!=.any等” 4.自连接 ...

  3. Navicat设定mysql定时任务

    有个需求:每天将一张表的前一天的数据抽取到另一张表中,使用Mysql数据库的客户端Navicat配置 第一步,创建过程cust_report,直接在查询窗口中执行,保存后函数列表中就会出现. 第二步, ...

  4. git 修改配置

    git config 查看配置信息 config 配置项帮助信息 $ git config config 配置有system级别 global(用户级别) 和local(当前仓库)三个设置项 从sys ...

  5. appium解决无法通过name属性识别元素org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session

    执行代码.: public AndroidDriver<AndroidElement> appiumDriver; appiumDriver.findElement(By.name(&qu ...

  6. c/c++ int long float double 表示范围

    引自https://blog.csdn.net/xuexiacm/article/details/8122267

  7. (转)用mysql自带工具mysqlslap对数据库进行压力测试

    http://aolens.blog.51cto.com/7021142/1901557-------用mysql自带工具mysqlslap对数据库进行压力测试 mysqlslap是mysql自带的工 ...

  8. kafka java API的使用

    Kafka包含四种核心的API: 1.Producer API支持应用将数据流发送到Kafka集群的主题 2.Consumer API支持应用从Kafka集群的主题中读取数据流 3.Streams A ...

  9. 权重平等分布局And TableRow布局误区

    开头语: 本人最近在自学Android,虽然本人有2年Java Web的开发经验.但是发现Android的自学之路并不是那么平坦,我没有Android真机.但是有一个window phone的手机.开 ...

  10. Derby的jar说明

    Derby的jar说明 Derby的下载后,解压发现lib中有很多jar包,下面说明一下每个jar包的用途: 引擎库 derby.jar是引擎库,必须的 For embedded databases. ...