1. 简单的去重方法,利用数组的indexOf下标属性来查询

/*
* 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中
* IE8以下不支持数组的indexOf方法
* */
function newArr(nArr) {
var arr = [];
for(var i = 0; i < nArr.length; i++){
if(arr.indexOf(nArr[i]) === -1){
arr.push(nArr[i]);
}
}
return arr;
}

  2.  利用双层for循环来判断

/*
* 定义一个新数组,并存放原数组的第一个元素,
* 然后将原数组和新数组一一对比,如果不同则存放新数组中。
* */
function unique(arr) {
let res = [arr[0]];
for(let i = 1; i < arr.length; i++){
let repeat = false;
for(let j = 0; j < res.length; j++){
if(arr[i] === res[j]){
repeat = true;
break;
}
}
if(!repeat){
console.log(arr[i]);
res.push(arr[i]);
}
}
return res;
}

  3  利用数组原型对象上的includes方法。(ES6新增的)

function uniques(arr) {
let res = [];
for(let i = 0; i < arr.length; i++){
if(!res.includes(arr[i])){
res.push(arr[i]);
}
}
return res;
}

  备注:  传统上只有indexOf一个方法,来判断一个字符串是否包含在另一个字符串当中,ES6后来新增三个方法:

  a. includes(string, n) 返回 布尔值,表示是否找到了参数字符串。

  b. startsWith(string, n) 返回布尔值,表示参数字符串是否在原字符串的头部

  c. endsWith(string, n) 返回布尔值,表示参数字符串是否在原字符串的尾部。

  上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

  4. 利用数组原型对象上的 filter 和 includes方法

function uniques(arr) {
let res = [];
res = arr.filter(function (item) {
return res.includes(item) ? "" : res.push(item);
});
return res;
}

  5. 利用Set数据结构和数组符号"..."来判断 或者利用 Array.from()来转换

function uniques1(arr) {
return [...new Set(arr)];
} function uniques2(arr) {
return Array.from(new Set(arr));
}

  备注: Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。

  6. 利用对象属性存在的特性,如果没有该属性则存入新数组。

function uniques(arr) {
let res = [];
let obj = {};
for(let i = 0; i < arr.length; i++){
if(!obj[arr[i]]){
obj[arr[i]] = 1;
res.push(arr[i]);
}
}
return res;
}

JavaScript中数组去重汇总的更多相关文章

  1. JavaScript中数组去重的几种方法

    JavaScript中数组去重的几种方法 正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重 ...

  2. javascript中数组去重的4种方法

    面试前端必须准备的一道问题:怎样去掉Javascript的Array的重复项.在最近面试中,百度.腾讯.盛大等都在面试里出过这个题目.这个问题看起来简单,但其实暗藏杀机. 考的不仅仅是实现这个功能,更 ...

  3. 总结Javascript中数组各种去重的方法

    相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...

  4. js中数组去重的几种方法

    js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                 ...

  5. javascript中数组的常用算法深入分析

    Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...

  6. JavaScript Array 数组方法汇总

    JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...

  7. JavaScript中数组操作常用方法

    JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...

  8. javascript中数组Array的方法

    一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...

  9. Javascript中数组

    Javascript中数组 1.什么是数组 所谓的数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存) 2.创建数组的含义 创建数组的目的:就是为了保存更多的数据 3.数组的定义 ...

随机推荐

  1. Linux构建DNS主从服务器

    所有服务器:iptables -Fsystemctl stop firewalldsetenforce 0 配置yum 主服务器:[root@localhost ~]# yum -y install ...

  2. ASP.NET开发实战——(四)ASP.NET MVC是如何运行的?它的生命周期是什么?

    前面的文章我们使用ASP.NET MVC创建了个博客应用,那么它是如何工作的呢?我们都知道ASP.NET的程序需要部署到IIS上才能够通过浏览器来访问,那么IIS与ASP.NET MVC程序之间又是如 ...

  3. 软件推荐【Windows】

    随时更新...链接为官网,自用保证安全(不信任可以把鼠标放在超链接上预览一下)        如有备注,下载链接均为最新(因为都是官方自动更新的下载链) 首先: 推荐一个软件管家(毕竟有时外网不稳定, ...

  4. 第02组 Alpha事后诸葛亮

    目录 1. 组长博客(2分) 2. 总结思考(27分) 2.1. 设想和目标(2分) 2.2. 计划(5分) 2.3. 资源(3分) 2.4. 变更管理(4分) 2.5. 设计/实现(4分) 2.6. ...

  5. Zuul的使用,路由访问映射规则

    一.Zuul的介绍 Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实力上,是实现外部访问统一入口基础而过滤器功能则负责对请求的处理过程进行干预,是实现 ...

  6. jsp之el表达式jstl标签

    不管是el表达式还是jstl标签最终的目的都是要消除jsp中的java代码,当然是消除显式的java代码 el表达式的出现是为了简化jsp中读取数据并写入页面的操作. el表达式的功能不多,也很好记 ...

  7. 我的周记9——"所以快乐才是真谛"

    七月又名:巧月.瓜月.霜月.相月.凉月.初商.肇秋.初秋.首秋.早秋.新秋.上秋.孟秋.夷则.申月等. 你好七月 ,想起大学的时候我在校园的点歌台点了一首歌,歌名是July . 七月一号,新的一月,新 ...

  8. [转帖]几张图让你看懂WebAssembly

    几张图让你看懂WebAssembly https://www.jianshu.com/p/bff8aa23fe4d     (图片来源:giphy.com) 编者按:本文由明非在众成翻译平台上翻译. ...

  9. C# WebBrowser控件 下载文件不弹下载提示框的办法

    参考链接 https://stackoverflow.com/questions/6773866/download-file-and-automatically-save-it-to-folder p ...

  10. 10、VUE路由技术

    1.前端路由 前端路由在很多开源的js类库框架中都得到支持,如AngularJS.Backbone.Vue.js等等. 前端路由和后端路由原理一样,是让所有的交互和展示在一个页面运行,以达到减少服务器 ...