2015-02-05 5 views
1

У меня есть яваскрипт массив из нескольких объектов, как один ниже:JQuery каждый цикл через массив с несколькими объектами

var myArray = [{ 

year:'2015', 
model:'BMW', 
used:false, 
extras: [{buckets:'no',sportWheels:'yes'},{buckets:'no',sportWheels:'yes'}], 
color:'blue' 

..... 

}]; 

Что я пытаюсь сделать это в циклю этого массива и передать результаты в список, что-то вроде этого:

$.each(myArray, function(i, e){ 
var year = myArray[i].year; 
var model = myArray[i].model; 
var used = myArray[i].used; 
var color = myArray[i].color; 
var extras = myArray[i].extras; 

$('.list').append(year+model+used+color); 
}); 

Все идет хорошо, пока я не хочу собирать результаты дополнительных услуг. Я не знаю, что делать, может кто-нибудь что-то предложить. Я думал о втором цикле, но не работает !!!

+1

Вложенный цикл должен работать нормально. Пожалуйста, напишите, что вы пробовали, и мы выясним, что вы сделали неправильно. – Barmar

ответ

1

делать каждый цикл для туАггау [I] .extras

$.each(myArray, function(i, e){ 
     var year = myArray[i].year; 
     var model = myArray[i].model; 
     var used = myArray[i].used; 
     var color = myArray[i].color; 
     var extras = myArray[i].extras; 
     var str=''; 
     $.each(myArray[i].extras, function (index, data) { 
      // alert(data.buckets); 
      str+='<div>' + year + model + used + color + data.buckets + data.sportWheels +'</div>'; 
     }) 
     $('.list').append(str); 
     //$('.list').append(year+model+used+color); 
    }); 
+0

Да, я пробовал это, но проблема в том, что у меня есть более одной модели в моем массиве, код, который я написал здесь, является образцом, и если вы добавляете в список, как вы делали здесь, в вашем примере добавляя больше списков, чем существующие данные, more looping – billo

+0

http://jsfiddle.net/a23gwmee/ проверить, что-то не определено – billo

+0

change var str; to var str = ''; undefined исчезнет. я рад помочь вам. – user86745458

Смежные вопросы