js 中如何去掉数组中的重复的数据

js 中如何去掉数组中的重复的数据,第1张

可以使用js的for循环筛选实现去掉数组中的重复的数据。

具体步骤拆纯如下:

需要准备的材料分别是:电脑、浏览器、ultraedit。

1、在ue编辑器中新建一个空白的html文件,js文件。

2、在ue编辑器中输入以下html代码。

3、在ue编辑器中输入以下js代码。

4、编辑完成以后,在ue编辑器中点击保存,格式选择UTF8无BOM。

5、在浏览器中打开此html文件,可以看到最终想要实现的去掉数樱嫌组中的重复脊御手的数据效果。

方法一:indexOf循环去重

方法二答物:ES6 Set去重;Array.from(new Set(array))

方法三:Object 键值对去重;把数组的值存成 Object 的 key 值,比如毁举旅 Object[value1] = true,再判断另一个值的时候,如果 Object[value2]存在的话纤凳,就说明该值是重复的。

数组去重,就是在数组中查找相同的元素,保留其中一个,去除其他元素的程。

从这句话揭示了数组去重的两个关键因素:

找到重复项

去除重复项

本文告诉你在遇到去重问题时该如何思考,并以 JavaScript 为例,进行详细解释。使用 JavaScript 示例主要是因为它环境比较好找,而且直接对象 (Plain Object) 用起来很方便。

JavaScript 的环境:Node.js 或者浏览器的开发者控制台。

找到重复项

找到重复项最关键的算法是判定元素是否相同。判定相同,说起来似乎很简单 —— 用比较运算符就好了嘛!真的这么简单吗?

用 JavaScript 来举个例:

const a = { v: 10 }

const b = { v: 10 }

肉眼观察,这里的a和b相同吧?但是 JavaScript 不这么认为:

console.log(a == b) // false

console.log(a === b) // false

肉眼观察和程序比较使用了不同的判断方法。肉眼观察很直接的采用了字符串比对的方法,而程序压根没管是不是数据相同,只是直接判断它们是不液禅信是同一个对象的引用。我们一般会更倾向于使用符合人眼直观判断的方法,所以可能会想到使用JSON.stringify()把对象变成字符串来判断:

console.log(JSON.stringify(a) === JSON.stringify(b)) // true

现在如果我们把a和b略作改变,又该如何?

const a = { v: 10, n: "1" }

const b = { n: "1", v: 10 }

乍一看,a和b不同。用JSON.stringify()的结果来比对,也确实不同。但是仔细一看,他们的属性是完全相同的,唯一的区别在于属性的顺序不一样。那么到底顺序应不应该作为一个判断相同的依据呢?

这个问题现在真没法回答。“该如何”取决于我们的目标,也就是业务需求。

从上面的例子我们可以了解:判断相同并不是一个简单的事情,根据不同的业务要求,需要选择不同的判断方法;而不同的判断方法,可能产生不同的判断结果。

接下来先讲讲常见的判断方法。

最直接的:比较运算符

比较运算符主要用于比较基本类型的值,比如字符串、数、布尔闹轮等。

普通比较运算符 (==) 在比较不同类型的值时,会先把它们转换为相同类型再来比较;而严格比较运算符 (===) 则更为严格,会直接将类袭巧型不同值判定为不同。这些都是基本的 JavaScript 语法知识。现代开发中为了能更好的利用工具,除极少数特殊情况外,都应该使用===来进行判断。尤其是在 TypeScript 中,几乎都不会出现==了。

JavaScript 中,比较运算符不会比较对象属性,只会比较对象的引用是否相同。如果要比较对象具体信息,需要用到接下来讲到的方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12434363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存