JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

阅读目录:

  • DS01:常用的查找数组中是否有重复元素的三种方法
  • DS02:常用的JS函数集锦

DS01、常用的查找数组中是否有重复元素的三种方法

1、

1   var ary = new Array("111","22","33","111");
2   var s = ary.join(",")+",";
3   for(var i=0;i<ary.length;i++) {
4       if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) {
5           alert("数组中有重复元素:" + ary[i]);
6           break;
7       }
8   }

2、

1  var ary = new Array("111","22","33","111");
2  var nary=ary.sort();
3  for(var i=0;i<ary.length;i++){
4       if (nary[i]==nary[i+1]){
5           alert("数组中有重复元素:"+nary[i]);
6       }
7  }

3、

1 function isRepeat(arr){
2      var hash = {};
3      for(var i in arr) {
4          if(hash[arr[i]])
5               return true;
6          hash[arr[i]] = true;
7      }
8      return false;
9 }

回到顶部

DS02:常用的JS函数集锦

1、pop 方法   
功能:移除数组中的最后一个元素并返回该元素。

示例:arrayObj.pop( )

说明:

必选的 arrayObj 引用是一个 Array 对象。   
如果该数组为空,那么将返回 undefined。

2、push 方法   
功能:将新元素添加到一个数组中,并返回数组的新长度值。   
示例:arrayObj.push([item1 [item2 [. . . [itemN ]]]])   
参数:   
arrayObj,必选项,一个 Array 对象。   
item, item2,. . . itemN   可选项。表示该 Array 的新元素。

返回值:数组的新长度值。

3、 unshift 方法   
功能:将指定的元素插入数组开始位置并返回该数组。   
示例:arrayObj.unshift([item1[, item2 [, . . . [, itemN]]]])   
参数:   
arrayObj,必选项,一个 Array 对象。   
item1, item2,. . .,itemN,可选项,将插入到该 Array 开始部分的元素。   
说明:  
unshift 方法将这些元素插入到一个数组的开始部分,所以这些元素将以参数序列中的次序出现在数组中。

返回值:当前数组。

4、splice 方法   
功能:从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。   
示例:arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])   
参数:
arrayObj,必选项,一个 Array 对象。   
start,必选项,指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。   
deleteCount,必选项,要移除的元素的个数。   
item1, item2,. . .,itemN,必选项,要在所移除元素的位置上插入的新元素。   
说明:  
splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。

返回值:是一个由所移除的元素组成的新 Array 对象。

回到顶部

19:38:09 2015-01-15

by selonsy

(待更新)

时间: 01-15

JS数组常用函数以及查找数组中是否有重复元素的三种常用方法的相关文章

【前端小小白的学习之路】----&gt;用JS编写一个函数,返回数组中重复出现过的元素

用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: var arr = [1, 2, 3, 1, 2, 3, 4, 5]; var getRepeat = function (arr) { var obj = {}; for (var i = 0, len = arr.length; i < len; i++) { if (obj[arr[i]] == undefined) { obj[arr[i]] = 1; } else { obj[arr[i]]++; } } for (var

JS判断数组中是否有重复元素的方法

判断数组中是否有重复元素,最容易想到的方法是使用2重循环,逐个遍历,比较,但是这个是最慢,最笨的方法,百度得出了更好的方法. var ary = new Array("111","22","33","111"); var nary=ary.sort(); for(var i=0;i<ary.length;i++){ if (nary[i]==nary[i+1]){ alert("数组重复内容:"+na

JS 验证数组中是否包含重复元素

验证JS中是否包含重复元素,有重复返回true:否则返回false function isRepeat(data) { var hash = {}; for (var i in data) { if (hash[data[i]]) { return true; } // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可 hash[data[i]] = true; } return false; }

哈希(6) - 判断数组中是否存在重复元素且距离在K之内

给定一个包含多个重复元素的未排序的数组.另外给定一个数字k,且k小于数组大小.判断数组中是否包含重复元素,且它们相隔的距离处于范围k之内. 例如: Input: k = 3, arr[] = {1, 2, 3, 4, 1, 2, 3, 4} Output: false 所有重复元素的距离>k. Input: k = 3, arr[] = {1, 2, 3, 1, 4, 5} Output: true 存在重复元素1,且距离为3(==k). Input: k = 3, arr[] = {1, 2,

找出数组中唯一的重复元素

[问题] 1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次. 每个数组元素只能访问一次,设计一个算法,将它找出来:不用辅助存储空间,能否设计一个算法实现? [代码] #include <stdio.h> #include <stdlib.h> #include <string.h> /*根据异或法的计算方式,每两个相异的数执行异或运算之后,结果为1: 每两个相同的数异或之后,结果为0,任何数与0异或,结果仍为自身. 所以数组a[N]

C#二进制字节数组操作函数 截取字节数组SubByte

/// <summary> /// 截取字节数组 /// </summary> /// <param name="srcBytes">要截取的字节数组</param> /// <param name="startIndex">开始截取位置的索引</param> /// <param name="length">要截取的字节长度</param> ///

(笔试题)如何判断数组中是否存在重复元素

题目: 假设数组a有n个元素,元素的取值范围为1~n,如何判定数组是否存在重复元素? 思路: 方法1: 数组排序,比较相邻元素是否相等: 时间复杂度:O(nlogn),空间复杂度:O(1) 方法2: 使用bitmap(位图),定义长度为N/8的char数组,每个bit表示对应数字是否出现过.遍历数组,使用bitmap对数字是否出现过进行统计. 时间复杂度:O(n),空间复杂度:O(n) 方法3: 遍历数组,假设第i个位置的数字为j,则通过交换将j换到下标为j的位置上,直到所有数字都出现在自己对应

SqlServer查找表中多余的重复记录

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleId in (select peo

查找表中多余的重复记录(多个字段)

3.查找表中多余的重复记录(多个字段) select * from vitae awhere (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1) 注意这里 in可以有多个字段