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
投稿
猜你喜欢
- 本文实例讲述了Python使用pickle模块储存对象操作。分享给大家供大家参考,具体如下:众所周知,当我们需要储存数据的时候,就需要用到重
- # 递归满足的条件# 1.自己调用自己# 2.必须有一个明确的结束条件# 优点:逻辑简单\定义简单# 缺点:防止内存消耗过多,容易导致栈溢出
- 1. 线性表简介线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列。线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一
- 看代码吧~import gcfor x in list(locals().keys())[:]: del loca
- 本文实例讲述了Python实现查找数组中任意第k大的数字算法。分享给大家供大家参考,具体如下:模仿partion方法,当high=low小于
- 1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载)<1>.Microsoft SQL server 2
- 在使用Go语言进行开发的时候,有的时候可能要发送get或者post请求,下面我对post和get请求做一下简单的介绍:关于 HTTP 协议H
- MSSQL随机数 MSSQL有一个函数CHAR()是将int(0-255) ASCII代码转换为字符。那我们可以使用下面MS SQL语句,可
- 1. getattr()函数是Python自省的核心函数,具体使用大体如下:class A: def __init__(self): sel
- 铃铃铃…… 上课了老师在黑板写着这么一个标题 《Python: 你所不知道的星号 * 用法》同学A: 呃,星号不就
- 先贴代码package mainimport ("fmt")// Send the sequence 2, 3, 4,
- 我遇到的情况是:把数据按一定的时间段提出。比如提出每天6:00-8:00的每个数据,可以这样做:# -*-coding: utf-8 -*-
- 本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下1.主要内容python种的.py文件如图所示第一个
- 1.条件语句几个注意点和C#不一样的。if a < 5 { return 0} else {
- 我就废话不多说了,还是直接看代码吧!#!/usr/bin/env python3#coding = utf-8def is_triangle
- 本文实例讲述了php查找指定目录下指定大小文件的方法。分享给大家供大家参考。具体实现方法如下:php查找文件大小的原理是遍历目录然后再利用f
- 函数:原型每一个构造函数都有一个属性叫做原型(prototype,下面都不再翻译,使用其原文)。这个属性非常有用:为一个特定类声明通用的变量
- mysql字段的数据类型支持json格式,可以直接存储json数组和json对象。一、插入json数据的方式有两种1、以普通字符串形式插入,
- 已解决selenium模块利用performance获取network日志请求,抛出异常selenium.common.exceptions
- 并发安全和锁有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)。类比现实生活中