js删除数组中重复的元素
1、方法一
将数组逐个搬到另一个数组中,当遇到重复元素时,不移动,若元素不重复则移动到新数组中
function unique(arr){
var len = arr.length;
var result = []
for(var i=0;i<len;i++){
var flag = true;
for(var j = i;j<arr.length-1;j++){
if(arr[i]==arr[j+1]){
flag = false;
break;
}
}
if(flag){
result.push(arr[i])
}
}
return result;
}
2、方法二
遍历数组arr,把元素分别放入另一个数组result中,判断arr中的元素在result中是否存在,不存在即加入temp中
function unique(arr){
var result = [];
for(var i=0;i<arr.length;i++){
if(result.indexOf(arr[i])==-1){
result.push(arr[i])
}
}
return result;
}
3、方法三
将数组的值作为对象的属性,通过对象的属性值来判断数组是否重复,若该项不重复则给对象对应属性值赋为true,便于之后的判断,并将数据项加入结果集中
function unique(arr) {
var result = [];
var obj = {};
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]){
result.push(arr[i]);
obj[arr[i]] = true;
}
}
return result
}
也可以通过判断对象中是否包含该属性来去重,此时对象属性的值可以任意但必须有值,否则会认为该属性不存在
function unique(arr) {
var result = [];
var obj = {};
for(var i=0;i<arr.length;i++){
if(!obj.hasOwnProperty(arr[i])){// if(!(arr[i] in obj))
result.push(arr[i]);
obj[arr[i]] = 0;
}
}
return result
}
4、方法四
将数组的值赋给另一个数组的键,此时重复的元素都被删除,然后取新数组的键作为去重后的结果
function unique(arr){
var result = []
var temp = []
for(var i in arr){
temp[arr[i]] = 1;
}
for(var i in temp){
result.push(i)
}
return result
}
js删除数组中重复的元素的更多相关文章
- PHP删除数组中重复的元素
array_unique($arr): //删除重复元素 $arr = [1,2,3,0,1]; echo '<pre>'; var_dump($arr); $arr = array_un ...
- 删除数组中重复的元素(JSON)
先上一个基础的: var a = [1,2,3,3,4]; var b = []; for (var i = 0; i < a.length; ++i) { if (b.indexOf(a[i] ...
- js 删除 数组中某个元素(转载)
来源:https://www.jb51.net/article/134312.htm js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.ht ...
- js删除数组里指定的元素
js删除数组里指定的元素 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- jst通用删除数组中重复的值和删除字符串中重复的字符
以下内容属于个人原创,转载请注明出处,非常感谢! 删除数组中重复的值或者删除字符串重复的字符,是我们前端开发人员碰到很多这样的场景.还有求职者在被面试时也会碰到这样的问题!比如:问删除字符串重复的字符 ...
- C#如何删除数组中的一个元素
C#如何删除数组中的一个元素,剩余的元素组成新数组,数组名不变double[] arr = new double[n];需要删除的是第m+1个数据arr[m]求新数组arr.(新数组arr包含n-1个 ...
- C语言 · 删除数组中的0元素
算法提高 6-9删除数组中的0元素 时间限制:1.0s 内存限制:512.0MB 编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,C ...
- js删除数组中元素的方法
一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删 ...
随机推荐
- php中的<?= ?>替换<?php echo ?>
首先修改PHP.ini文件.如下: 1. 将short_open_tag = Off 改成On 开启以后可以使用PHP的短标签:<? ?> <?= $test ?>来代替 &l ...
- Redis 学习之常用命令及安全机制
该文使用centos6.5 64位 redis3.2.8 一.redis常用命令 键值常用命令: 1. keys 返回满足pattern的所有key. 127.0.0.1:6379> ke ...
- 【poj2096】Collecting Bugs 期望dp
题目描述 Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other materia ...
- 【bzoj1617】[Usaco2008 Mar]River Crossing渡河问题 dp
题目描述 Farmer John以及他的N(1 <= N <= 2,500)头奶牛打算过一条河,但他们所有的渡河工具,仅仅是一个木筏. 由于奶牛不会划船,在整个渡河过程中,FJ必须始终在木 ...
- Django 2.0 学习(07):Django 视图(进阶-续)
接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...
- 【Ubuntu】编写一个c语言代码
安装 sudo apt-get build-depgcc coding:http://www.cnblogs.com/zero1665/archive/2009/11/03/1595510.html ...
- selenium - webdriver - Keys类(键盘操作)
Keys()类提供了键盘上几乎所有按键的方法,这个类可用来模拟键盘上的按键,包括各种组合键,如 Ctrl+A, Ctrl+X,Ctrl+C, Ctrl+V 等等 from selenium impor ...
- HDU1083 :Courses(二分图匹配)
Cources Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- hadoop设置公平队列
http://hadoop.apache.org/docs/r1.2.1/fair_scheduler.html fair-scheduler.xml文档 <?xml version=" ...
- sql获取当前时间
sql读取系统日期和时间的方法如下:--获取当前日期(如:yyyymmdd) select CONVERT (nvarchar(12),GETDATE(),112) --获取当前日期(如:yyyymm ...