2013-03-05 26 views
5

ben üçüncüsüiki diziler karşılaştırın ve oluşturmak üçüncüsü

benim ilk dizi karşılaştırmak ve oluşturmaya çalıştık iki diziler var:

sevenDays = ["04","05","06","07","08","09","10"]; 

benim ikinci dizi:

json[0] = [Object{day="04",value="5"}, Object { day="05",value="8"}, Object { day="09",value="9"}] 

neyi Ben almaya çalışıyorum geçerli:

[[04,5],[05,8],[06,0],[07,0],[08,0],[09,9],[10,0]] 

Ben Şu anda endeksi json[0] ait i objenin value özelliğine sevenDays yılında endeks i değeri kıyaslıyorsun bu

var desiredArray= [];       
$.each(sevenDays, function (i, v) { 
    val= 0; 
    if (json[0][i].value) val = json[0][i].value; 
    desiredArray[i] = [v, val] 
}); 


[[04,5],[05,8],[06,9],[07,0],[08,0],[09,0],[10,0]] //output 
+0

gibi yapabiliriz uygun json formatında ikinci dizi ....

dikkate. –

cevap

5

gibi çalıştı, ancak sipariş uymuyorsa, çünkü bu doğru değil. 09 değeri json[0] yılında endeksi 2.'dedir ama 09sevenDays yılında indeksi 5 yer almaktadır.

Sen sevenDays üzerinde yineleme gerekir ve json[0] üzerinde her yineleme yinelemek için şöyle, eşleştirme nesneyi bulmak için:

var desiredArray = []; 

$.each(sevenDays, function (i, day) { 
    val = 0; 
    $.each(json[0], function(j, value) { 
     if(day == value.day) 
      val = value.value; 
    }); 
    desiredArray[i] = [day, val]; 
}); 

this working demo bir göz atın.

+0

Şimdi anladım :). çok teşekkür ederim! (her birinde sorun olmamalı mı?) – InTry

+0

@InTry İç içe geçmiş 'her' işlevler, gölgelenmeyi önlemek için benzersiz değişken adlarını seçmeniz koşuluyla sorunlara neden olmaz. –

0

kolay test için bir http://jsfiddle.net/ oluşturmalıdır bu

var data[] =["",""] 
for(value in sevenDays) 
{ 
for(Object in json[0]) 
{ 
if(Object.hasOwnProperty(data[value]) 
{ 
    // do ur stuff here :) 
} 
else 
{ 
    //do the other stuff here :) 
} 
} 
} 
+0

için '(x in y)' sözdizimi diziler üzerinde değil, nesnelerin özelliklerini yinelemek içindir. –

+0

düzenledi ... şimdi bu işe yarayacak ... – 1and0

İlgili konular