javascript数组去重方法总结(推荐)
作者:风语1201 时间:2024-04-17 10:31:22
第一种--对象键值去重
Array.prototype.unique1 = function () {
var r = {},
temp = []
for (var i = 0; i < this.length; i++) {
if (!r[this[i]]) {
r[this[i]] = 1
temp.push(this[i])
}
}
return temp
}
第二种--splice删除去重
Array.prototype.unique2 = function () {
for (var i = 0; i < this.length; i++) {
for (var j = i + 1; j < this.length; j++) {
if (this[i] === this[j]) {
this.splice(j, 1)
j--
}
}
}
return this
}
第三种--利用数组indexOf方法
// 循环遍历当前数组,当前不在临时数组的,push
Array.prototype.unique3 = function () {
var temp = []
for (var i = 0; i < this.length; i++) {
if (temp.indexOf(this[i]) === -1) temp.push(this[i])
}
return temp
}
第四种--数组下标
// 当前数组的第i项在当前数组第一次出现的位置不是i,当前项即重复,反之
Array.prototype.unique4 = function () {
var temp = [this[0]]
for (var i = 1; i < this.length; i++) {
if (this.indexOf(this[i]) === i) temp.push(this[i])
}
return temp
}
第五种
// 先排序,找相邻的项
// 这个会改变原来数组的顺序
Array.prototype.unique5 = function () {
var tempArr = this.sort(),
temp = [tempArr[0]]
for (var i = 1; i < tempArr.length; i++) {
if (tempArr[i] !== temp[temp.length - 1]) temp.push(tempArr[i])
}
return temp
}
第六种
// 优化遍历数组
// 获取没重复的最右一值放入新数组
Array.prototype.unique6 = function () {
var temp = []
for (var i = 0; i < this.length; i++) {
for (j = i + 1; j < this.length; j++) {
if (this[i] === this[j]) {
i++;
j = i;
}
}
temp.push(this[i])
}
return temp
}
第七种--es6 set
Array.prototype.unique7 = function () {
var temp = new Set(this)
return [...temp]
}
第八种--filter
Array.prototype.unique8 = function () {
return this.filter(function (ele, index, self) {
return self.indexOf(ele) === index;
})
}
以上所述是小编给大家介绍的javascript数组去重方法详解整合网站的支持!
来源:https://www.cnblogs.com/windspeech/p/10485088.html
标签:javascript,数组去重
0
投稿
猜你喜欢
滑动验证码的设计与理解
2022-09-18 08:34:28
python 在某.py文件中调用其他.py内的函数的方法
2021-02-25 23:56:09
MySQL数据库远程访问权限设置方式
2024-01-22 06:58:43
python实现批量转换文件编码(批转换编码示例)
2023-07-28 22:03:47
vue+elementUI实现动态面包屑
2024-05-02 17:11:02
解决GOPATH在GOLAND中的坑
2023-07-12 23:46:16
python中id函数运行方式
2021-12-27 14:03:50
oracle 在一个存储过程中调用另一个返回游标的存储过程
2009-09-26 18:54:00
Python闭包之返回函数的函数用法示例
2022-12-09 18:50:41
TensorFlow tf.nn.max_pool实现池化操作方式
2021-08-20 20:36:45
Python中torch.norm()用法解析
2021-12-01 09:42:43
MYSQL每隔10分钟进行分组统计的实现方法
2024-01-22 13:56:42
python实现unicode转中文及转换默认编码的方法
2021-05-02 22:19:59
mysql字符集和数据库引擎修改方法分享
2024-01-21 22:02:49
Go语言生成随机数的方法
2023-08-28 20:11:10
Python采集二手车数据的超详细讲解
2022-09-23 00:58:22
Go 处理大数组使用 for range 和 for 循环的区别
2024-04-28 09:18:59
vue使用pdf.js预览pdf文件的方法
2024-04-27 16:06:24
python算法题 链表反转详解
2021-01-26 11:47:35
Python 下载Bing壁纸的示例
2023-11-20 00:14:41