2014-02-12 3 views
-2

Я задал аналогичный вопрос об этом раньше, и хотя мой код работал (тогда), я не понимал, что происходит.

Моя функция:

function matchesfill(){ 
    $.each(json.result.matches, function(i, v) { 
     if (i.lobby_type == 7){ 
      matches[x] = i.match_id; 
      x=x+1; 
      console.log('match added to array'); 
     } 
     else{ 
      console.log('match skipped: non-ranked'); 
     } 
     }); 
     return; 
} 

В настоящее время, при запуске, консоль просто регистрирует match skipped для всех, несмотря на то, что это неправильно. Должно быть пропущено только одно из матчей.

и JSon:

{ 
    "result": { 
     "status": 1, 
     "num_results": 10, 
     "total_results": 500, 
     "results_remaining": 490, 
     "matches": [ 
      { 
       "match_id": 515853415, 
       "match_seq_num": 469991846, 
       "start_time": 1392156202, 
       "lobby_type": 7, 
       "players": [ 

Изменить: Я извиняюсь, я читаю документацию, и я понимаю, что они имели в виду, но я до сих пор не понимаю, почему мой код не работает.

Благодарим вас за то, что вы были терпеливы с новым учеником.

+0

* "Итак, когда вы делаете функцию $ .each, и указать функцию (я v), что делает я см и v" *. Это именно тот вопрос, на который отвечает документация. –

+5

Этот вопрос не соответствует теме, потому что на него отвечает стандартная документация. –

+0

'i' - это индекс (для массива) или ключ (для объекта),' v' - это значение - быть фактическим значением (строка, число, логическое и т. д.), объект или другой массив. Вы хотите использовать 'v', а не' i'. –

ответ

1

Как указано в документации, i является индексом и v является значением, поэтому вы должны использовать v.

if (v.lobby_type == 7) 

Документация: https://api.jquery.com/jQuery.each/

+0

Я вижу. Я посмотрел документацию, как я пренебрегал делать раньше. (Извиняюсь!) Так что v.lobby_type ссылается на значение (7), на что ссылается i.lobby_type, индекс? Что такое индекс объекта, который находится под другими объектами? – k4kuz0

+0

Переменная 'i' содержит только индекс элемента в массиве (0, 1, 2, ...). 'i.lobby_type' не определен. – francadaval

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