Rumah >hujung hadapan web >tutorial js >Kaedah yang disyorkan untuk mengalih keluar nilai pendua daripada tatasusunan dalam kemahiran JavaScript_javascript

Kaedah yang disyorkan untuk mengalih keluar nilai pendua daripada tatasusunan dalam kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 15:05:551466semak imbas

Penyahduplikasi tatasusunan ialah keperluan biasa Kami akan mempertimbangkan penyahduplikasian tatasusunan daripada jenis yang sama. Perkara utama adalah untuk menjelaskan idea dan mempertimbangkan prestasi. Kaedah berikut pada asasnya tersedia di Internet, dan hanya diringkaskan secara ringkas di sini.

Perkara:

1. Lintas tatasusunan dan bandingkan satu demi satu Jika perbandingannya sama, padamkan
berikut 2. Lintas tatasusunan, bandingkan satu persatu dan langkau pendua sebelumnya jika ia tidak sama, masukkannya ke dalam tatasusunan baharu
3. Ambil mana-mana elemen tatasusunan dan masukkan ke dalam tatasusunan baharu, rentas elemen tatasusunan yang tinggal, ambil mana-mana satu, bandingkan satu persatu dengan unsur tatasusunan baharu, jika terdapat perbezaan, masukkan ke dalam tatasusunan baharu.
4. Lintas tatasusunan, ambil elemen sebagai atribut objek dan tentukan sama ada atribut itu wujud

1. Padamkan pendua berikut:

function ov1(arr){
  //var a1=((new Date).getTime())
  for(var i=0;i<arr.length;i++)
    for(var j=i+1;j<arr.length;j++)
      if(arr[i]===arr[j]){arr.splice(j,1);j--;}      
  //console.info((new Date).getTime()-a1)        
  return arr.sort(function(a,b){return a-b});
}

2. Ini adalah kaedah konvensional, yang lebih mudah untuk difahami

function ov2(a) {
  //var a1=((new Date).getTime())
  var b = [], n = a.length, i, j;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++)
      if (a[i] === a[j]){j=false;break;}
    if(j)b.push(a[i]);
    }
  //console.info((new Date).getTime()-a1)  
  return b.sort(function(a,b){return a-b});
} 
3. Saya mengambil masa yang lama untuk memahami perkara ini Walaupun gelung j berterusan di sini, nilai i telah berubah. Ia bersamaan dengan gelung i baharu:


function ov3(a) {
  //var a1=((new Date).getTime())
  var b = [], n = a.length, i, j;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++)
    if (a[i] === a[j])j=++i
  b.push(a[i]);}
  //console.info((new Date).getTime()-a1)  
  return b.sort(function(a,b){return a-b});
}   
4. Pastikan semua dalam tatasusunan baharu adalah unik


function ov4(ar){
//var a1=((new Date).getTime())
  var m=[],f;
  for(var i=0;i<ar.length;i++){
  f=true; 
  for(var j=0;j<m.length;j++)
  if(ar[i]===m[j]){f=false;break;};
  if(f)m.push(ar[i])}
//console.info((new Date).getTime()-a1)  
  return m.sort(function(a,b){return a-b});
}
5. Gunakan atribut objek


	function ov5(ar){
	//  var a1=(new Date).getTime()
			var m,n=[],o= {};
			for (var i=0;(m= ar[i])!==undefined;i++)
			if (!o[m]){n.push(m);o[m]=true;}
	//  console.info((new Date).getTime()-a1)  
		return n.sort(function(a,b){return a-b});;
		}
Kaedah yang disyorkan di atas untuk mengalih keluar nilai pendua daripada tatasusunan JavaScript adalah semua kandungan yang dikongsi oleh editor saya harap ia boleh memberi anda rujukan dan saya harap anda akan menyokong Script Home.

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