两种实现思路,js在数组中删除重复的元素自保留
分类:美高梅游戏官网网站

例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao'];

<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>

javascript删除数组重复元素的方法汇总

   本文实例讲述了javascript删除数组重复元素的方法。分享给大家供大家参考。具体分析如下:

  这里分享一个前端面试高频题,主要实现javascript删除数组重复元素。希望对初学者有所帮助

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

//数组去重的方法

Array.prototype.unique=function(){

//集中声明变量

var

oldArr=this,

newArr=[oldArr[0]],

len=oldArr.length,

i=1;

//过滤空数组

if(!len) return this;

//过滤重复元素

for(;i<len;i++){

newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : '';

}

//返回过滤后的数组没有影响原数组

return newArr;

}

var arr=['a','a','b','a','c','d'];

console.log(arr.unique());

//["a", "b", "c", "d", unique: function]

  虽然网上也有很多而且自己写的也不咋地,但是毕竟自己写的逻辑清楚以后还可以顺着逻辑扩展比如扩展到对象元素去重或者是可以同时操作多个数组等等这里再放上别人的写的几个方法可以综合比较下

  方法1:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function oSort(arr)

{

var result ={};

var newArr=[];

for(var i=0;i

{

if(!result[arr[i]])

{

newArr.push(arr[i])

result[arr[i]]=1

}

}

return newArr

}

  方法2:

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

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

  ?

1

2

3

4

5

6

7

8

9

10

11

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){

}

}

return tmp;

}

  方法3:

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

  ?

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){

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>

  方法4

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

/**

* 去除数组重复元素

*/

function uniqueArray(data){

data = data || [];

var a = {};

for (var i=0; i<data.length; i++) {

var v = data[i];

if (typeof(a[v]) == 'undefined'){

a[v] = 1;

}

};

data.length=0;

for (var i in a){

data[data.length] = i;

}

return data;

}

  方法都差不多第三个方法想法还是蛮高明的~

  希望本文所述对大家的javascript程序设计有所帮助。

本文实例讲述了javascript删除数组重复元素的方法。分享给大家供大家参考。具体分析如下: 这里分享...

有JS定义一个函数(删除数组的重复元素) 放在数组对象的原型里面,让所有的 的数组对象都可以应用这个方法


function box(arr){this.arr=arr;}
box.prototype.aa=function(){
this.ori = [].concat(this.arr);
for (var i=0;i<this.arr.length;i++)
{
for (var j=i+1;j<this.arr.length;j++ )
{
if (this.arr[i]==this.arr[j])
{
this.arr.splice(j,1);
}
}
}
alert("原来的是:"+this.ori+"n"+"去重后:"+this.arr);
}
var num=new box([1,5,10,8,20,7,4,2,4,5,3,1,19,20]);
num.aa();  

您可能感兴趣的文章:

  • js删除数组元素、清空数组的简单方法(必看)
  • JavaScript从数组中删除指定值元素的方法
  • 体验js中splice()的强大(插入、删除或替换数组的元素)
  • Javascript根据指定下标或对象删除数组元素
  • 解析javascript 数组以及json元素的添加删除
  • JavaScript数组Array对象增加和删除元素方法总结
  • js删除Array数组中指定元素的两种方法
  • 基于JavaScript实现移除(删除)数组中指定元素
  • JS删除数组元素的函数介绍
  • JavaScrip数组删除特定元素的几种方法总结
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){
  }
 }
  return tmp;
}

JS里去除数组中的重复值

如果你把测试数组简化为 [1, 2, "2", 2, 3],然后在每一步使用 console.log 输出,看得就清楚了
函数中使用 typeof 是为了区别 2 和 “2”(number 和 string)

Array.prototype.del = function() { var a = {}, c = [], l = this.length; for (var i = 0; i < l; i++) { var b = this[i]; // for 循环第 1 次:1 // for 循环第 2 次:2 // for 循环第 3 次:"2" // for 循环第 4 次:2 // for 循环第 5 次:3 console.log(b); var d = (typeof b)

  • b; // for 循环第 1 次:number1 // for 循环第 2 次:number2 <--- 重复 // for 循环第 3 次:string2 // for 循环第 4 次:number2 <--- 重复 // for 循环第 5 次:number3 console.log(d); // for 循环第 1 次:number1 为 undefined // for 循环第 2 次:number2 为 undefined // for 循环第 3 次:string2 为 undefined // for 循环第 4 次:注意 {} 中已经有了 number2,所以不为 undefined // for 循环第 5 次:number3 为 undefined console.log(a[d]); // a[d] 代表将 d 设为 a 的属性,例如 a = {number2},但没有值 if (a[d] === undefined) { // 1, 2, "2", 3 被 push c.push(b); // 这里 = 1 只是给此属性一个值,例如 a = {number2: 1} a[d] = 1; // for 循环第 1 次:{number1=1} // for 循环第 2 次:{number1=1, number2=1} // for 循环第 3 次:{number1=1, number2=1, string2=1} // for 循环第 4 次:因为 number2 存在,此次被......余下全文>>  

例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao']; 第一种思路是...

<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>

方法都差不多第三个方法想法还是蛮高明的~

js在数组中删除重复的元素自保留一个(两种实现思路),js数组

例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao'];

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

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

<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)

<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>

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

这里分享一个前端面试高频题,主要实现javascript删除数组重复元素。希望对初学者有所帮助

<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>

方法3:

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

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

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

方法2:

虽然网上也有很多而且自己写的也不咋地,但是毕竟自己写的逻辑清楚以后还可以顺着逻辑扩展比如扩展到对象元素去重或者是可以同时操作多个数组等等这里再放上别人的写的几个方法可以综合比较下

/**
* 去除数组重复元素
*/
function uniqueArray(data){ 
  data = data || []; 
  var a = {}; 
  for (var i=0; i<data.length; i++) { 
    var v = data[i]; 
    if (typeof(a[v]) == 'undefined'){ 
      a[v] = 1; 
    } 
  }; 
  data.length=0; 
  for (var i in a){ 
    data[data.length] = i; 
  } 
  return data; 
} 
function oSort(arr)
{
  var result ={};
  var newArr=[];
  for(var i=0;i
  {
 if(!result[arr[i]])
 {
   newArr.push(arr[i])
   result[arr[i]]=1
 }
  }
  return newArr
}

方法1:

本文实例讲述了javascript删除数组重复元素的方法。分享给大家供大家参考。具体分析如下:

您可能感兴趣的文章:

  • js删除数组元素、清空数组的简单方法(必看)
  • JavaScript从数组中删除指定值元素的方法
  • js删除Array数组中指定元素的两种方法
  • Javascript根据指定下标或对象删除数组元素
  • 解析javascript 数组以及json元素的添加删除
  • JS删除数组里的某个元素方法
  • JavaScript数组Array对象增加和删除元素方法总结
  • 基于JavaScript实现移除(删除)数组中指定元素
  • Javascript循环删除数组中元素的几种方法示例
  • javascript数组操作(创建、元素删除、数组的拷贝)
  • JS数组array元素的添加和删除方法代码实例
  • JS实现根据指定值删除数组中的元素操作示例

希望本文所述对大家的javascript程序设计有所帮助。

遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中
用到两个函数:for ...in 和 indexOf()

//数组去重的方法
Array.prototype.unique=function(){
  //集中声明变量
  var 
   oldArr=this,
   newArr=[oldArr[0]],
   len=oldArr.length,
   i=1;
  //过滤空数组
  if(!len) return this;
  //过滤重复元素
  for(;i<len;i++){
    newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : ''; 
  }
  //返回过滤后的数组没有影响原数组
  return newArr;
}
var arr=['a','a','b','a','c','d'];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

方法4

本文由美高梅网址发布于美高梅游戏官网网站,转载请注明出处:两种实现思路,js在数组中删除重复的元素自保留

上一篇:Jquery通过JSON字符串创建JSON对象,jQuery操作json常 下一篇:没有了
猜你喜欢
热门排行
精彩图文