网站首页 > 技术文章 正文
目录:在我们学习JavaScript的时候肯定学习怎样过去重;但是去重的方法有很多;今天我就给大家分享一下我了解的方法;相互学习一哈
第一种:先排序后去重
- 对数组进行双重循环;如果外循环的值大于内循环的值;就利用第三方变量对其交换值 ;这儿也可以用 sort
a.sort((a,b)=>{return a-b}); // 排序
- 当排序完成以后;再次循环进行比较相邻的两个值
var a =[1,2,3,4,5,2,3,5,5,5,5]
function info(a){
var arr = []
for(var i=0;i<a.length;i++){
for(var j=0;j<a.length-1;j++){
if(a[i]>a[j]){
var list = a[i]
a[i] = a[j]
a[j] = list
}
}
}
for(var e=0;e<a.length;e++){
if(a[e] != a[e+1]){
arr.push(a[e])
}
}
return arr
}
let list = info(a)
console.log(list); // 输出结果 [1, 2, 3, 4, 5]
第二种:indexOf去重
此去重主要是利用 indexOf 去查找是否有相同的值;如果没有就返回-1
var a =[1,2,3,4,5,2,3,5,5,5,5]
function info(arr){
let a = []
for(var i in arr){
if(a.indexOf(arr[i])==-1){
a.push(arr[i])
}
}
return a
}
let list = info(a)
console.log(list); // 输出结果 [1, 2, 3, 4, 5]
第三种:双重for循环去重
z这儿需要注意一点的就是内循环的时候不要 a.length-1;否则的话就会出现[1, 2, 3, 4, 5, 5]这个结果
var a =[1,2,3,4,5,2,3,5,5,5,5]
for(let i=0;i<a.length;i++){
for(let j=i+1;j<a.length;j++){
if(a[i]===a[j]){
a.splice(j,1);
j--;
}
}
}
console.log(a); // 输出结果 [1, 2, 3, 4, 5]
第四种:Set去重
set去重应该说是简单的去重方式了
var a = [1,2,3,4,5,2,3,5,5,5,5]
let list = [...new Set(a)]
console.log(list); // 输出结果 [1, 2, 3, 4, 5]
以上的四种去重方法只是去重方法中的冰山一角;不过找到最适合自己的那个方法才是最好的;
如果有什么不对的地方;欢迎大家补充;相互学习、共勉
猜你喜欢
- 2024-11-24 30、下面 Set 结构,打印出的 size 值是多少(高薪常问)
- 2024-11-24 ES6——set用法
- 2024-11-24 js 中,set 与 数组 相互转换
- 2024-11-24 JavaScript,ES6,Set(集合),新的数据结构,没有重复元素
- 2024-11-24 js 中set去重并转为数组
- 2024-11-24 WPS宏(JSA)教程——Map和Set
- 2024-11-24 访问者模式(Visitor模式)详解
- 2024-11-24 JS短文 | 3分钟了解下 JS Sets 集合
- 2024-11-24 js set 去重 查找元素 新增元素 太好用
- 2024-11-24 ES6新增的 Set 和 WeakSet 是什么玩意?在此揭晓
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-