<!DOCTYPE html>
<html lang="zh"> <head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>JavaScript 数组去重 面试题</title>
</head> <body>
<script type="text/javascript">
var arr = [1, 2, 3, 4, 1, 2, 5];
//方法一:ES6 set
var newArr = [...(new Set(arr))];
console.log(newArr);
//方法二:
function dicArr(arr) {
var newArr = [];
for(var i = 0, len = arr.length; i < len; i++) {
if(newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(dicArr(arr));
//方法三
function dicArr2(arr) {
var newArr = [],
obj = {};
for(var i = 0, len = arr.length; i < len; i++) {
if(!obj[arr[i]]) {
obj[arr[i]] = 1;
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(dicArr2(arr));
//方法四
function dicArr3(arr) {
for(var i = 0, len = arr.length; i < len; i++) {
for(var j = i + 1; j < len; j++) {
if(arr[i] == arr[j]) {
arr.splice(j, 1);
len--;
j--;
}
}
}
return arr;
}
console.log(dicArr3(arr));
//方法五 说明使用map,filter,forEach都行
function dicArr4(arr) {
var newArr = [];
// arr.forEach(function(value,key,arr){
// var flag = arr.indexOf(value,key+1);
// if(flag == -1){
// newArr.push(value);
// }
// });
// arr.map(function(value, key, arr) {
// var flag = arr.indexOf(value, key + 1);
// if(flag == -1) {
// newArr.push(value);
// }
// });
arr.filter(function(value, key, arr) {
var flag = arr.indexOf(value, key + 1);
if(flag == -1) {
newArr.push(value);
}
});
return newArr;
}
console.log(dicArr4(arr));
</script>
</body> </html>

上述一共实现五种数组去重方法。

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

  1. JavaScript数组去重方法汇总

    1.运用数组的特性 1.遍历数组,也遍历辅助数组,找出两个数组中是否有相同的项,若有则break,没有的话就push进去. //第一版本数组去重 function unique(arr){ var r ...

  2. JavaScript数组去重方法及测试结果

    最近看到一些人的去面试web前端,都说碰到过问JavaScript数组去重的问题,我也学习了一下做下总结. 实际上最有代表性也就三种方法:数组双重循环,对象哈希,排序后去重. 这三种方法我都做了性能测 ...

  3. JavaScript 数组去重方法总结

    1.遍历数组法: 这应该是最简单的去重方法(实现思路:新建一新数组,遍历数组,值不在新数组就加入该新数组中) // 遍历数组去重法 function unique(arr){ var _arr = [ ...

  4. javaScript数组去重方法

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

  5. js 数组去重方法汇总

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

  6. JavaScript 数组(Array)方法汇总

    数组(Array)常用方法; 数组常用的方法:concat(),every(), filter(), forEach(),  indexOf(), join(), lastIndexOf(), map ...

  7. JavaScript数组去重方法总结

    一.双重遍历去重 function onlyFigure(arr) { let newarr = []; const length = arr.length for (let i = 0; i < ...

  8. JavaScript实现数组去重方法

    一.利用ES6 Set去重(ES6中最常用) function unique (arr) { return Array.from(new Set(arr)) } var arr = [1,1,'tru ...

  9. JavaScript数组去重的几种方法

    这个老问题,网上普遍都有了,为什么要再写一遍呢,主要是为了记个笔记... 遍历时搜索结果数组 思路很明确,如下 新建一个数组存放结果 循环遍历原数组,对于每一个元素,在结果数组中搜索是否存在 若不存在 ...

随机推荐

  1. JavaWeb响应下载(包含工具类)

    纸上得来终觉浅,绝知此事要躬行!今天博主分享是关于javaweb的响应(response)下载 以下是我的Demo: 页面我就粘主要部分的代码 <a href = "${pageCon ...

  2. 如何使用python查看视频的长度

    import subprocess import re def get_length(filename): result = subprocess.Popen(["ffprobe" ...

  3. Selenium2+python自动化19-单选框和复选框(radiobox、checkbox)【转载】

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  4. tyvj——P1002 谁拿了最多奖学金

      P1002 谁拿了最多奖学金 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2005复赛提高组第一题 描述 某校的惯例是在每学期的期末考试之后发 ...

  5. java中split任意数量的空白字符

    java程序中经常通过split截取字符串来取得其中的关键字.但是由于其中不同操作系统或者不同作者的习惯,经常会出现不同数量的空格,例如"   "(3个空格):或者出现制表符.Ta ...

  6. Binary Tree Maximum Path Sum - LeetCode

    Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence ...

  7. 洛谷五月月赛 T1

    做一下差分之后,把每个位置的差分数看成这个位置有多少个石子,于是每次操作就是选一个有石子的位置并把这个位置的石子移到后面的位置(如果这个位置已经是最后了那么直接扔掉). 所以就是带权石子问题了,最后判 ...

  8. bean装配--注解

    1,Dao层 package com.songyan.zhujie; public interface UserDao { public void say(); } package com.songy ...

  9. Signing Identities, Missing Private Key, Cannot sign App

    这个问题发生在重新安装系统后,丢失了之前的private key等.所以解决方法就是提示的revoke and request. 到developer center中找到certificate中对应的 ...

  10. IMAP 命令

    最近学习了一下IMAP命令,现在也算总结一下学习的东西,先说说IMAP命令,如果你使用的是163.126邮箱,反正是网易家的邮箱,那么这里就有很多坑要踩了,因为网易邮箱的特殊性,由于网易邮箱在中国占有 ...