2011-01-05 15 views
14

Aşağıdaki kod snippet'ini içeren aşağıdaki JS nesnesine döngü oluşturmaya çalışıyorum, hem dizin anahtarını hem de iç nesneyi getirmeniz gerekiyor.jQuery: Nesneye doğru düzgün bir şekilde mi geçmek istiyorsunuz?

Aşağıdakiler işe yaramadığı için nasıl yapmalıyım?

nesne:

({ prop_1:["1", "2"], 
prop_2:["3", "4"]}) 

Kodum:

$.each(myObject, function(key,valueObj){ 
    alert(key + "/" + valueObj.toSource()); 
}); 

Beklenen çıkışı:

prop_1/(["1", "2"]) 

cevap

22

ince çekicisin iç nesne, valueObjdizisi olduğunu Sadece .toSource() numaralı bir yöntemi yoktur (t zaten değil çapraz tarayıcı), size bir uyarı alırsınız kaldırırsanız: çıktı sadece olduğunu atılmış olmayın,

$.each(myObject, function(key,valueObj){ 
    alert(key + "/" + valueObj); 
}); 

You can test it out here:

prop_1/1,2 
prop_2/3,4 

... Bir Array üzerinde varsayılan .toString(), virgülle ayrılmış bir listedir, yani bir alert() ile gördüğünüzdür.

prop_1/1 
prop_2/3 

... böylece istediğiniz Diziyi, you can test that here var mı görebilirsiniz: yerine alert(key + "/" + valueObj[0]); yaptıysam Örneğin, sen görürsün.

3

Sen döngüde bir kullanabilirsiniz: Bu durum fonksiyonları içerecek

var myObject = ({ prop_1:["1", "2"], prop_2:["3", "4"]}) 
    for (var key in myObject) { 
     if (myObject.hasOwnProperty(key)) { 
      alert(key + "/" + myObject[key]); 
     } 
    } 
+1

, böylece typeof' 'bunları filtrelemek için mutlaka bunları istemiyorsanız. (JavaScript, İyi Parçalar, 3.7 Numaralandırma) – mdup

İlgili konular