JS 中常用的去重
第一种:indexOf (获取字符串值在字符串中首次出现的位置,若没有这个值,则返回-1)
let arr = [15,45,88,45,78,15,55,88];
let arr1 = []; //声明新数组
for(let i in arr){ //for...in 遍历数组
if(arr1.indexOf(arr[i]) == -1){ 使用indexOf 判断arr1和arr 里面是否有相同的,没有就添加,有就不添加;
arr1.push(arr[i]);
}
}
console.log(arr1);
第二种:双for循环 (每一个数据进行判断)
let arr = [15, 45, 88, 45, 78, 15, 55, 88];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) { //判断是否遇到相同的元素
arr.splice(j, 1);//遇到就删除一个元素
j--; //数组的总长度发生了改变,进行j--
}
}
}
console.log(arr);
第三种:filter
let arr = [15, 45, 88, 45, 78, 15, 55, 88];
function fn(arr){
return arr.filter((item,index,arr)=>{
return arr.indexOf(item,0) === index; //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
});
}
console.log(fn(arr));
第四种:Set (ES6)
let arr = [15, 45, 88, 45, 78, 15, 55, 88];
let s = new Set(arr) //实现数组去重,但不是数组类型
arr = [...new Set(arr)]; //转为arrAry类型
console.log(arr);
第五种:[...new Set(arrAry)] (ES6)
let arr = [15, 45, 88, 45, 78, 15, 55, 88];
arr = [...new Set(arr)];
console.log(arr);
JS 中常用的去重的更多相关文章
- Js中常用的字符串,数组,函数扩展
由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...
- 今天给大家分享一下js中常用的基础算法
今天给大家分享一下js中常用的基础算法,废话不多说,直接上代码: 1.两个数字调换顺序 ,b= function fun(a,b){ b = b - a ;// a = 2 ; b = 2 a = a ...
- js中常用的操作
1.js中常用的数组操作 2.js中常用的字符串操作 3.js中常用的时间日期操作 4.定时器
- JS中数组对象去重
JS数组去重 JS中对数组去重最好不要用unique方法,该方法主要是对dom节点数组的去重,如果对普通的数组元素去重只会去掉与之相邻的重复元素,也就是如果数组中还有不相邻的重复元素存在,将不会被去掉 ...
- 基础篇:1.JavaScript运行在html中,引用有几种方式?—— 6.js中常用的输出方式?
书接上文,上文提到若干条JavaScript的基础性知识,大部分都是一些概念性的东西,本着认真严谨的态度,我们要认真对待,有些条目的问题是某个知识点的周边延伸,为节约篇幅,就一起整理了,如有描述不对的 ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出“欢迎下次光临” 在网页中弹出框输入1 网页输出“查询中……” 在 ...
- JS中常用开发知识点
JS中常用开发知识点 1.获取指定范围内的随机数 2.随机获取数组中的元素 3.生成从0到指定值的数字数组 等同于: 4.打乱数字数组的顺序 5.对象转换为数组 //注意对象必须是以下格式的才可以通 ...
- js中常用的对象—String的属性和方法
今天说一下,js中常用的内置对象——String对象它有以下几个常用的属性:lengthprototype 有以下几个常用的方法:parseInt()转换为数字parseFloat()转换为数字,支持 ...
- js中常用的对象—Array的属性和方法
今天说一下,js中常用的内置对象——Array对象 Array常用属性: length prototype :给系统对象添加属性和方法 Array常用方法: Array.prototype.sum = ...
随机推荐
- python接口之request测试:以json格式发送post请求,.json方法,查看响应结果的情况
json和dict python中的dict类型要转换为json格式的数据需要用到json库: import json <json> = json.dumps(<dict>) ...
- [luogu1390]公约数的和
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 2000005 4 long long n,ans,f[N],vi ...
- Win10更新Win11步骤及体验感
Win11发布也有一段时间了,最近工作闲下来才想起来更新一下试试,更新过程还算顺利,需要改一下电脑的主板设置之后就可以下载官方提供的更新包,记录一下安装过程中遇到的问题以便查看. Win11更新 使用 ...
- 【JAVA】笔记(12)---集合(1)-概述篇
楔子: 1.集合相当于一个容器,数组虽然也相当于一个容器,但是集合的特性更符合我们日常开发的需求,所以集合的使用更加频繁: 2.集合特性: 1)集合的长度可变,数组一经初始化,长度固定: 2)集合可以 ...
- Atcoder Grand Contest 038 F - Two Permutations(集合划分模型+最小割)
洛谷题面传送门 & Atcoder 题面传送门 好久前做的题了--今天偶然想起来要补个题解 首先考虑排列 \(A_i\) 要么等于 \(i\),要么等于 \(P_i\) 这个条件有什么用.我们 ...
- LOJ 3399 -「2020-2021 集训队作业」Communication Network(推式子+组合意义+树形 DP)
题面传送门 一道推式子题. 首先列出柿子,\(ans=\sum\limits_{T_2}|T_1\cap T_2|·2^{T_1\cap T_2}\) 这个东西没法直接处理,不过注意到有一个柿子 \( ...
- pip 与 conda
pip 与 conda 简介 pip 是接触 python 后最早认识的包管理工具.通过使用 pip 能够自动下载和解决不同 python 模块的依赖问题,使 python 的配置过程变得简单. 与 ...
- OpenFOAM 中 c++ 基础
文件布置 在 OpenFOAM 中,所有代码都以注释段开头,使用有限体积的 CFD 类型文件都包括以下头文件 #include "fvCFD.H" 在此头文件种,仅包含类或函数的定 ...
- 【Python小试】使用列表解析式简化代码
列表解析式的好处: 代码简洁 可读性强 运行快 示例 来自<Python编程>中的一个例子:同时投掷两颗面数不同的骰子(如一个6面的D6和一个10面的D10)n次,统计两个骰子点数之和,并 ...
- Prometheus基础
监控系统作用 监控系统主要用于保证所有业务系统正常运行, 和业务的瓶颈监控. 需要周期性采集和探测. 采集的详情 采集: 采集器, 被监控端, 监控代理, 应用程序自带仪表盘, 黑盒监控, SNMP. ...