SORU
10 HAZİRAN 2010, PERŞEMBE


JavaScript dizi döngü

Java for() bir döngü gibi: bir dizi nesneleri geçmesi için kullanabilirsiniz

String[] myStringArray = {"Hello","World"};
for(String s : myStringArray)
{
    //Do something
}

JavaScript içinde sen de aynısını yapabilir misin?

CEVAP
10 HAZİRAN 2010, PERŞEMBE


for sıralı bir döngü kullanın:

var myStringArray = ["Hello","World"];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i  ) {
    alert(myStringArray[i]);
    //Do something
}

@zipcodeman for...in deyimini kullanmayı öneriyor, ama yineleme diziler için for-in Kaçınılması gerektiğini, bunu ifade etmek içindirnumaralandırmanesne özellikleri.

Dizi gibi nesneler için kullanılan olmamalıdır:

  • Yineleme sırasını garanti edilmez, dizi dizinleri sayısal sırayla ziyaret olmayabilir.
  • Kalıtsal özellikleri de sayılmıştır.

İkinci nokta ise özelliği de numaralandırılmış Array.prototype yöntemi eklemek için nesneyi uzatmak, sorun bir sürü örnek verebilir.

Örneğin:

Array.prototype.foo = "foo!";
var array = ['a', 'b', 'c'];

for (var i in array) {
  alert(array[i]);
}

Yukarıdaki kodu uyarır, "", "b", "c" ve "foo!".

Eğer ağır yerli prototip dayanan bazı kütüphane kullanırsanız augmention (örneğin MooTools gibi) özellikle bir sorun olabilir.

Dediğim gibi for-in deyim öncenumaralandırmaörneğin: nesne özellikleri

var obj = {
  "a": 1,
  "b": 2,
  "c": 3
};

for (var prop in obj) {
  if (obj.hasOwnProperty(prop)) { 
  // or if (Object.prototype.hasOwnProperty.call(obj,prop)) for safety...
    alert("prop: "   prop   " value: "   obj[prop])
  }
}

Yukarıdaki örnekte hasOwnProperty Bu yöntem, yalnızca numaralandırma sağlarmülkleri varbu , sadece fiziksel olarak nesne özellikleri, kalıtsal özellikleri yok.

Aşağıdaki makaleyi okumanızı tavsiye ederim:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alex maybury

    alex maybury

    20 Aralık 2007
  • BruBearBaby

    BruBearBaby

    25 Ocak 2011
  • Edgar flores

    Edgar flores

    7 HAZİRAN 2006