js在数组中删除重复的元素自保留一个

js在数组中删除重复的元素自保留一个

第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中

用到两个函数:for ...in 和 indexOf()


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15


<script type="text/javascript">

var student = [‘qiang‘,‘ming‘,‘tao‘,‘li‘,‘liang‘,‘you‘,‘qiang‘,‘tao‘];

function unique(arr){

// 遍历arr,把元素分别放入tmp数组(不存在才放)

var tmp = new Array();

for(var i in arr){

//该元素在tmp内部不存在才允许追加

if(tmp.indexOf(arr[i])==-1){

tmp.push(arr[i]);

}

}

return tmp;

}

</script>

第二种思路是:把目标数组arr的元素值和键的位置调换 自动就把重复的元素给删除掉了,调换后的样子:array(‘qiang‘=>1,‘ming‘=>1,‘tao‘=>1)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17


<script type="text/javascript">

var student = [‘qiang‘,‘ming‘,‘tao‘,‘li‘,‘liang‘,‘you‘,‘qiang‘,‘tao‘];

function unique(arr){

var tmp = new Array();

for(var m in arr){

tmp[arr[m]]=1;

}

//再把键和值的位置再次调换

var tmparr = new Array();

for(var n in tmp){

tmparr.push(n);

}

return tmparr;

}

</script>

时间: 2024-10-06 18:03:38

js在数组中删除重复的元素自保留一个的相关文章

js学习笔记之在数组中删除重复的元素自保留一个

遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 <script type="text/javascript"> var student = ['qiang','ming','tao','li','liang','you','qiang','tao']; function unique(arr){ // 遍历arr,把元素分别放入tmp数组(不存在才放) var tmp = new Array(); for(var

将集合中的重复的元素只保留一个

for (int i = 0; i < listRemove.Count; i++) { for ( int j = listRemove.Count - 1;j>i;j--) { if (listRemove[i] == listRemove[j]) { listRemove.RemoveAt(j); } } }

js连接多个数组并删除重复的元素

js连接多个数组并删除重复的元素:在实际应用中,可能需要将多个数组合并到一个数组中去,并且删除数组中重复的元素.代码实例如下: var a=["antzone","蚂蚁部落","市南区"], b=["新锐科技","蚂蚁部落","努力奋斗"], c=[2,"新锐科技","js教程"], _a=a.concat(b).concat(c), _hash=

js去除数组中的重复值

hasOwnProperty(property) 方法 JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性. 使用方法: object.hasOwnProperty(proName) 其中参数object是必选项.一个对象的实例.proName是必选项.一个属性名称的字符串值. 如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true:反之则返回 false.此方法无法检查该对

arts打卡 从排序数组中删除重复项

Algorithm 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应

9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素

/** * 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定. * 若只有4KB内存可用,该如何打印数组中所有重复的元素. */ /** * 思路:4KB最多殉职8*4*2^10个比特.比32000大.创建含有32000个比特的位向量,其中每个比特代表一个整数. * 遇到重复元素,打印出来. * @param array */ public static void checkDuplicates(int[] array){ BitSet bs=new

[LeetCode] 80. Remove Duplicates from Sorted Array II ☆☆☆(从有序数组中删除重复项之二)

https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/discuss/27976/3-6-easy-lines-C%2B%2B-Java-Python-Ruby 描述 Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For example,Given sorted array A = [1,1

[LeetCode] 26. Remove Duplicates from Sorted Array ☆(从有序数组中删除重复项)

[LeetCode] Remove Duplicates from Sorted Array 有序数组中去除重复项 描述 Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this

Ex 2_14 去掉数组中所有重复的元素..._第二次作业

首先利用归并排序算法对数组进行排序,时间复杂度为O(nlogn),接着再利用时间复杂度为O(n) 的去重复算法去掉数组中的重复元素.总的时间复杂度为O(nlogn). (这题应该用分支算法解决)以下为分支算法 代码不是分支算法 1 package org.xiu68.ch02.ex2; 2 3 public class Ex2_14 { 4 //基于分治法的归并排序算法 5 public static void main(String[] args) { 6 7 int[] a=new int[