js 数组去重方法总结

news/2025/3/14 9:47:03

js 数组去重方法应该是面试中比较常问到的一个问题,今天在网上找了一些相关资料,在这里做下总结!废话不多说直接上代码!
方法一:

var arr = [0,2,3,4,4,0,2];
var obj = {};
var tmp = [];
for(var i = 0 ;i< arr.length;i++){if( !obj[arr[i]] ){obj[arr[i]] = 1;tmp.push(arr[i]);}
}
console.log(tmp);

结果如下: [0, 2, 3, 4]

方法二:

var arr = [2,3,4,4,5,2,3,6],arr2 = [];
for(var i = 0;i< arr.length;i++){if(arr2.indexOf(arr[i]) < 0){arr2.push(arr[i]);}
}
console.log(arr2);

结果为:[2, 3, 4, 5, 6]

方法三:

var arr = [2,3,4,4,5,2,3,6];
var arr2 = arr.filter(function(element,index,self){
return self.indexOf(element) === index;
});
console.log(arr2);

结果为:[2, 3, 4, 5, 6]

方法四:

function dedupe(array) {return Array.from(new Set(array));
}let a = dedupe([1,2,3,4,3,2]);
console.log(a)

这个方法用到了es6的 Set 数据结构 他类似于一个数组但是成员的值都是唯一的,没有重复的,也就是说 new Set(array) 会自动清除掉数组里边的重复数值。
但是 new Set(array); 返回的是一个Set 结构对象, 正好Array.from() 方法可以吧Set 结果转换成数组

文章来源:https://blog.csdn.net/shi851051279/article/details/83246387
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-1397720.html

相关文章

【Mark Schmidt课件】机器学习与数据挖掘——K均值聚类

本课件的主要内容包括&#xff1a; 随机森林 应用&#xff1a;癌症分类 无监督学习 聚类 聚类示例 数据聚类 埃-巴二氏病毒聚类 其它聚类应用 K均值 K均值示例 不同初始化的K均值聚类 KNN vs. K均值 矢量量化 K中值聚类 K中心点聚类 K均值初始化 K均值 K均值讨…

华为交换机S5700升级实例

华为交换机S5700升级实例近期我写了一篇文章&#xff0c;是在测试vSphere虚拟交换机中的"专用VLAN"&#xff0c;此功能需要上层交换机的支持。专用VLAN&#xff0c;思科称为PVLAN&#xff0c;华为称为MUX VLAN。文章详见 http://wangchunhai.blog.51cto.com/225186/1…

【计算机科学】【2010.12】基于人工神经网络的印刷电路板电磁辐射建模方法

本文为美国托莱多大学&#xff08;作者&#xff1a;DavidT. Kvale&#xff09;的电子工程硕士论文&#xff0c;共130页。 本文提出了一种新的用于电子系统电磁干扰/兼容(EMI/EMC)分析的建模方法。通过改变屏蔽孔的数量、改变部分屏蔽PCB迹线的位置、改变PCB互连的位置以及在屏…

js 判断一个字符串中出现次数最多的字符,统计其出现次数

js 判断一个字符串中出现次数最多的字符&#xff0c;统计其出现次数 var str asdfssaaasasasasaa; var json {}; for (var i 0; i < str.length; i) {if(!json[str.charAt(i)]){json[str.charAt(i)] 1;}else{json[str.charAt(i)];} }; var iMax 0; var iIndex ; for(…

【读书1】【2017】MATLAB与深度学习——代价函数比较(1)

该程序的撰写方式几乎与第2章“SGD与批处理比较”中的SGDvsBatch.m文件的撰写方式相同。 The architecture of this file is almostidentical to that of the SGDvsBatch.m file in the “Comparison of the SGD andthe Batch” section in Chapter 2. clear all X [ 0 0 1…

.NetCore简介

引用&#xff1a;https://docs.microsoft.com/zh-cn/dotnet/articles/core/index .NET Core 是一个通用开发平台&#xff0c;由 Microsoft 和 GitHub 上的 .NET 社区共同维护。 它是跨平台的&#xff0c;支持 Windows、macOS 和 Linux&#xff0c;并且可用于设备、云和嵌入式/I…

js 判断一个对象是否为空方法总结

通常情况下&#xff0c;工作中写逻辑的时候都会用到判断一个对象是否为空的方法&#xff0c;巧的是今天正好有人问我这个问题&#xff0c;我竟然没回答上来&#xff0c;很尴尬&#xff0c;决定研究一下总结下来&#xff0c;之前研究过但是久了不用就生疏了&#xff01;大意啊 …

【Mark Schmidt课件】机器学习与数据挖掘——基于密度的聚类

本课件主要内容包括&#xff1a; 上次课程回顾&#xff1a;K均值聚类 凸集 非凸聚类的K均值方法 约翰斯诺与霍乱流行 研究密度聚类的动机 基于密度的聚类 基于密度的聚类伪码 组合聚类 标签交换问题 为什么K均值聚类是凸的&#xff1f; Voronoi图 UBClustering算法 …

js 中call() 方法和 apply() 方法用法总结

以前对js 的call() 和 apply() 方法的理解一直比较模糊&#xff0c;模棱两可的状态&#xff0c;今天闲着有空&#xff0c;在网上查找了相关资料做一下总结 1, 每个函数都包涵两个非继承而来的方法&#xff0c;call() 方法 和apply() 方法。 2&#xff0c;相同点两个方法的作用…

软件工程个人作业02(四则运算)

四则运算作业02 import javax.swing.JOptionPane;import java.util.Random; import java.util.Scanner; public class Arithmetic {public static void main(String[] args) {// TODO 自动生成的方法存根int c;//选择int c1,c4,c5,c6,c7,c8;int a,b,d1;//二位数运算int c2,c3;i…