İlginizi Çekebilir
  1. Ana Sayfa
  2. Nasıl Yapılır?

Javascript Dizi Değerini Almanın 6 Yolu

Javascript Dizi Değerini Almanın 6 Yolu
javascript-dizi
+ - 0

Javascript Dizi Değerini Almanın 6 Yolunu sizlere sunuyorum.

Javascript Dizi, Objeler değerlerin anahtarlı bir şekilde koleksiyon halinde tutulmasını sağlar. Fakat bazı durumlarda sıralı koleksiyon tutmak gerekebilir, 1., 2. ve 3. elemente ihtiyac olabilir.

javascript dizi
javascript-dizi
Array.prototype.unique1 = function()
{
	var n = []; 
	for(var i = 0; i < this.length; i++) 
	{
		if (n.indexOf(this[i]) == -1) n.push(this[i]);
	}
	return n;
}
Array.prototype.unique2 = function()
{
	var n = {},r=[];
	for(var i = 0; i < this.length; i++) 
	{
		if (!n[this[i]]) 
		{
			n[this[i]] = true; 
			r.push(this[i]); 
		}
	}
	return r;
}
Array.prototype.unique3 = function()
{
	var n = [this[0]]; 
	for(var i = 1; i < this.length; i++) 
	{
		if (this.indexOf(this[i]) == i) n.push(this[i]);
	}
	return n;
}
Array.prototype.unique4 = function()
{
	this.sort();
	var re=[this[0]];
	for(var i = 1; i < this.length; i++)
	{
		if( this[i] !== re[re.length-1])
		{
			re.push(this[i]); 
		}
	}
	return re;
} 
Array.prototype.unique5 = function(){
    var self = this;
    var _a = this.concat().sort();
    _a.sort(function(a,b){
        if(a == b){
            var n = self.indexOf(a);
            self.splice(n,1);
        }
    });
    return self;
};
Array.prototype.unique5 = function(){
    var self = this;
    var _a = this.concat().sort();
    _a.sort(function(a,b){
        if(a == b){
            var n = self.indexOf(a);
Array.prototype.unique6 = function()
{
	return this.reduce(function(p, c)
	{
		if (p.indexOf(c) < 0) p.push(c);
		return p;
	}, []); 
};

Performans testi: (10000 rastgele sayı dizisiyle çalışır)

yöntem 1 kullanılan 349ms
yöntem 2 kullanılan 5ms
yöntem 3 kullanılan 442ms
yöntem 4 kullanılan 15ms
yöntem 5 kullanılan 13ms
yöntem 6 kullanılan 424ms

Bu nedenle, bir diziyi benzersiz kılmak için en iyi fikir, bir öğenin tekrarlanıp tekrarlanmadığını kontrol etmek için bir “karma haritası” kullanmaktır.

Bir demo sayfası var: http://php.js.cn/down/sample/array.html

Yazar Hakkında

Bu Yazıyı Yorumla