2013-12-03 3 views
2

У меня есть сайт, сделанный, как показано в этом jsfiddle:Javascript добавления второго измерения не возвращает результаты

http://jsfiddle.net/bAz3y/

$.getJSON('eventbrite.json', function(data) { 
    var events = []; 
    var j = 0; 

    for (var i in data) { 
     events[i][0] = data[i].event.title; 
    } 

    $('.btn-lg').click(function() { 
     $('#tester').replaceWith("<div id='tester'>" + events[j][0] + "</div>"); 
     j = j + 1; 
    }) 
    $("div.swiper").on("swipe",function() { 
     $('#tester').replaceWith("<div id='tester'>" + events[j][0] + "</div>"); 
     j = j + 1; 
    }) 
}); 

Я пытаюсь получить 2-ое измерение, чтобы сохранить название события, так что Затем я могу добавить дату и расстояние события в events[j][1] и events[j][2].

Однако добавление второго измерения (то есть events[i][0]) означает, что результаты не возвращаются.

ответ

1

Проблема заключается в for петля, events[i] не определен так events[i][0] потерпит неудачу

1.Solution является

for (var i in data) { 
    events[i] = [data[i].event.title, data[i].event.some]; 
} 

2.Another является использование $ .each() и сделать

var events = []; 
var j = 0; 

$.each(data, function(_,item){ 
    events.push([item.event.title, data[i].event.some]) 
}); 

3.A третий способ использовать $ .map()

var j = 0; 

var events = $.map(data, function (item) { 
    return [[item.event.title, data[i].event.some]] 
}); 
+0

Используя верхнее предложение, события [i] работают, но с использованием событий [i] [0] нет. – user3057706

+0

@ user3057706 он создает двухмерный массив .. после цикла for try 'events [0] [0]' не внутри –

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