javascript数组去重方法总结(推荐)
作者:风语1201 发布时间:2024-04-17 10:31:22
标签:javascript,数组去重
第一种--对象键值去重
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
0
投稿
猜你喜欢
- 前言在之前写过一篇博客"关系数据库如何快速查询表的记录数",里面介绍了使用sp_spaceused查看表的记录数是否正确
- 这篇文章主要介绍了Python二次规划和线性规划使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 函数画图以 z = x 2 + y 2 为例#导入模块import numpy as npimport matplotlib.py
- 1. 进入SSMS点击展开sqlserver代理,右键点击“作业”,然后选择新建作业。2. 填写名称
- 这篇文章主要介绍了Python Django 封装分页成通用的模块详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- pandas中的DataFrame中可以根据某个属性的同一值进行聚合分组,可以选单个属性,也可以选多个属性:代码示例:import pand
- 自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优
- 原来工作中曾经碰到过UL列表里一些异常的表现,加上昨天看到了http://bbs.blueidea.com/thread-2984871-1
- 枚举类Enum枚举类,在企业开发中用的比较多当我们需要定义常量时,一个办法是用大写的变量通过整数来定义,例如月份:# 当项目中需要使用12个
- 因为使用python+selenium有时候需要获取当前文件的上一级目录,找了一段时间找到了,在此记录下来;os.path.dirname(
- 代码: <?php $page=$_GET['page']; include($page.'php')
- 首先,在数据库中创建一个表,用于存放图片:CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCRE
- scipy.interpolate插值方法1 一维插值from scipy.interpolate import interp1d1维插值算
- 先给大家介绍下Python除法之传统除法、Floor除法及真除法python3.0 /总是执行真除法,不管操作数的类型,都返回浮点数结果(即
- 关于django中的APPEND_SLASHAPPEND_SLASH 它是啥?看变量名大概能知道做什么,就是添加斜线,用路由系统那里。路由文
- PDOStatement::columnCountPDOStatement::columnCount — 返回结果集中的列数。(PHP 5
- 见过很多网站,在设计的时候给了用户很大的自由度,我个人并不赞同这种做法。最简单的例子,圈网。我在研究圈网的时候注册完成后圈网给了我一个搜索框
- 想到TDE(Transparent Data Encryption)。 TDE MSDN 说明: “透明数据加密”(TDE) 可对数据和日志
- 第一步:python解释器,到网上下载安装下就行。网址:https://www.python.org/downloads/windows/值
- 引言:本文是学习Turtle库时,发现两种方法都能改变画笔的方向,但二者又不是完全相同,故对其加以辨析总结到此,在本文你将收获:1.两种改变