Rumah > hujung hadapan web > tutorial js > Ringkasan kaedah untuk memadamkan elemen pendua daripada tatasusunan dalam kemahiran javascript_javascript

Ringkasan kaedah untuk memadamkan elemen pendua daripada tatasusunan dalam kemahiran javascript_javascript

WBOY
Lepaskan: 2016-05-16 15:53:22
asal
1234 orang telah melayarinya

Contoh dalam artikel ini menerangkan cara memadamkan elemen pendua daripada tatasusunan menggunakan JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Di sini saya berkongsi soalan temu duga bahagian hadapan yang kerap ditanya, yang kebanyakannya melaksanakan javascript untuk memadamkan elemen pendua dalam tatasusunan. Semoga ia membantu untuk pemula

//数组去重的方法
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 &#63; newArr.push(_this) : ''; 
  }
  //返回过滤后的数组没有影响原数组
  return newArr;
}
var arr=['a','a','b','a','c','d'];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

Salin selepas log masuk

Walaupun terdapat banyak di Internet dan yang saya tulis tidak begitu bagus, lagipun, logik yang saya tulis adalah jelas dan boleh dikembangkan mengikut logik, seperti melanjutkan kepada elemen objek untuk membuang pendua atau mengendalikan pelbagai tatasusunan pada masa yang sama, dsb. Saya akan meletakkannya di sini Anda boleh membandingkan secara menyeluruh beberapa kaedah yang ditulis oleh orang lain

Kaedah 1:

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
}

Salin selepas log masuk

Kaedah 2:

Lintas arr tatasusunan untuk dipadamkan, dan letakkan elemen ke dalam tatasusunan lain masing-masing hanya selepas menilai bahawa elemen itu tidak wujud dalam arr, ia boleh diletakkan ke dalam tmp
Dua fungsi digunakan: untuk ...in dan indexOf()

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

Salin selepas log masuk

Kaedah 3:

Menukar nilai elemen dan kedudukan utama arr tatasusunan sasaran secara automatik akan memadamkan elemen pendua Pertukaran akan kelihatan seperti: 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>

Salin selepas log masuk

Kaedah 4

/**
* 去除数组重复元素
*/
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; 
} 

Salin selepas log masuk

Kaedahnya serupa, tetapi kaedah ketiga agak bijak~

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan