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

WBOY
Lepaskan: 2016-05-16 15:05:55
asal
1439 orang telah melayarinya

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});
}
Salin selepas log masuk

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});
} 
Salin selepas log masuk
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});
}   
Salin selepas log masuk
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});
}
Salin selepas log masuk
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});;
		}
Salin selepas log masuk
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.

Label berkaitan:
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