JS删除数组中重复的数据

Array.delRepeat = function (arr) {

  var _arr = arr.slice(0),retArr = [];

  for (var i = 0, len = _arr.length; i < len; i++) {

    for (var j = i + 1; j < len; j++) {

      if (_arr[i] == _arr[j]) {
        break;
      }
    }

    if (j == len) {
      retArr.push(_arr[i]);
    }

  }

  return retArr;

}

var _Array = [];
for (var i = 0; i < 1000000; i++) {
  _Array.push(Math.round(10000 * Math.random()));
}
//console.log(_Array);
console.time("Array initialize");
Array.delRepeat(_Array);
console.timeEnd("Array initialize");

重复的越多,执行效率越高,占时间越短

数组元素个数:100万并且元素不大于100时,执行时间约:185.000ms

数组元素个数:100万并且元素不大于1000时,执行时间约:1600.000ms

数组元素个数:100万并且元素不大于10000时,执行时间约:15525.000ms

数组元素个数:100万并且元素不大于100000时,执行时间约:140918.000ms

时间: 2024-10-10 17:01:39

JS删除数组中重复的数据的相关文章

js如何删除数组中重复的值

js如何删除数组中重复的值:有时候需要删除数组中重复的元素,下面是分享一下常用的代码,希望能够给需要的朋友带来一定的帮助.代码实例如下: Array.prototype.deleteEle=function() { var obj={}; var newArr=[]; var i,j; for(i=0;i<this.length;i++) { if(typeof(obj[this[i]])=="undefined") { obj[this[i]]=""; }

js删除数组中的&#39;NaN&#39;

js中的NaN不和任何值相等,包括自身. 所以可以使用x!=x来判断x是否是NaN,当且仅当x为NaN时,表达式的结果为true. NaN != NaN //true 可以依此删除数组中的'NaN'. Array.prototype.delNaN = function () { var arr = []; for (var i = 0; i < this.length; i++) { if (this[i] === this[i]) { arr.push(this[i]); } } return

js删除数组中的元素

js删除数组中的元素delete和splice的区别 例如有一个数组是 :var textArr = ['a','b','c','d']; 这时我想删除这个数组中的b元素: 方法一:delete 删除数组 delete textArr[1] 结果为: ["a",undefined,"c","d"] 只是被删除的元素变成了 undefined 其他的元素的键值还是不变. 方法二:aplice 删除数组 splice(index,len,[item]

删除数组中重复元素 (使用stl::set)

/* *程序作用删除数中重复的元素,先使用set 遍历一次数组,然后在使用两个指针,以及set查重, *去重复之后使用0填补多余空间 *复杂度 O(NlogN) *空间复杂度 O(N) */ #include<iostream> #include<set> using namespace std; void delete_over_arry(int *a,int len); void print(int *a ,int len); int main() { int p[]={1,1

JS删除数组中的某个元素

首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: 1 Array.prototype.indexOf = function(val) { 2 for (var i = 0; i < this.length; i++) { 3 if (this[i] == val) return i; 4 } 5 return -1; 6 }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素: 代码为: 1 Array.prototype.remo

js删除数组中某一项或几项的几种方法

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下

记录:js删除数组中某一项或几项的几种方法

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下

记录:js删除数组中某一项或几项的几种方法(转)

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下

js 删除数组中多个元素

js中如果使用forEach的话 , splice删除的时候会导致js的数组的length发生改变 , 因此会出现本应该删除的元素没有被删除 . 因此 , 我的想法是 : 使用index遍历 , 删除一个数组之后 , index不变  代码如下 : 1 var deleteTaskIds = [1,2,3,4]; 2 var taskList = [{}] 3 for (var i=0; i<taskList.length;){ 4 var task = taskList[i]; 5 if (d