JavaScript中数组去重汇总
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中数组去重汇总的更多相关文章
- JavaScript中数组去重的几种方法
JavaScript中数组去重的几种方法 正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重 ...
- javascript中数组去重的4种方法
面试前端必须准备的一道问题:怎样去掉Javascript的Array的重复项.在最近面试中,百度.腾讯.盛大等都在面试里出过这个题目.这个问题看起来简单,但其实暗藏杀机. 考的不仅仅是实现这个功能,更 ...
- 总结Javascript中数组各种去重的方法
相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...
- js中数组去重的几种方法
js中数组去重的几种方法 1.遍历数组,一一比较,比较到相同的就删除后面的 function unique(arr){ ...
- javascript中数组的常用算法深入分析
Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...
- JavaScript Array 数组方法汇总
JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...
- JavaScript中数组操作常用方法
JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...
- javascript中数组Array的方法
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
- Javascript中数组
Javascript中数组 1.什么是数组 所谓的数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存) 2.创建数组的含义 创建数组的目的:就是为了保存更多的数据 3.数组的定义 ...
随机推荐
- appium--解决中文输入不了的问题
配置 from appium import webdriver desired_caps={} desired_caps['platformName']='Android' #模拟器 desired_ ...
- 数据呈现到 ASP.NET Core MVC 中展示
终于要将数据呈现到 ASP.NET Core MVC 中的 视图 上了 将数据从控制器传递到视图的三种方法 在 ASP.NET Core MVC 中,有 3 种方法可以将数据从控制器传递到视图: 使用 ...
- Intellij IDEA使用一 创建javaweb项目并配置tomcat
一.新建Java web项目 参考:https://blog.csdn.net/chengtengfei352/article/details/79211619 1.点击创建新项目 2. 3.crea ...
- .NetCore 使用k8s部署服务的过程中需要注意的地方以及遇到的问题
这里开始我准备了3台测试服务器,这里我使用了JumpServer管理起来了,这里我们来看下: Master :192.168.0.236 Node1:192.168.0.237 Node2:192.1 ...
- python数据分析开发中的常用整理
Pandas操作 python使用pandas读取csv import pandas as pd #数据筛选 usetTable = pd.read_csv(filename,header = 0) ...
- W5500嵌入式开发
W5500是韩国一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,W5500同时也是一颗工业级以太网控制芯片,最近发现我们国内也有和W5500 芯片一样芯片 介绍给大家 如下图:
- xss之挑战小靶场(1-10)
在线靶场(http://xss.fbisb.com) w 第一关 get请求,没有什么过滤,直接上<script>alert()</script> 源码: 第二关 输入参数会显 ...
- minikube配置CRI-O作为runtime并指定flannel插件
使用crio作为runtime后,容器的启动将不依赖docker相关的组件,容器进程更加简洁.如下使用crio作为runtime启动一个nginx的进程信息如下:根进程(1)->conmon-& ...
- Isilon Gen6的换盘步骤
When a drive is faulted and ready for replacement, OneFS will illuminate the Front Panel Fault LED a ...
- hibernate中many-to-one的not-found属性和@notfound注解
如果在Hibernate项目里面配了很多many-to-one的关联,即使后台在查询数据时已经作了健全性判断,但还是会经常抛出对象找不到异常:org.hibernate.ObjectNotFoundE ...