2016-04-29 3 views
1

У меня есть код jquery, который я пытаюсь переписать в базовый javascript.javacript многомерный цикл массива

Проблема в том, что у меня есть этот многомерный массив, и я не уверен, как бы написать цикл for для этого?

$.each(wordcount, function(w, i) { 
     if (i > 1) { 
      constrain++; 
      if (constrain <= 2) { 
       topwords.push({ 
        'word': w, 
        'freq': i 
       }); 
      } 
     } 
    }); 
+1

Можете ли вы привести пример значений в массиве? – Jordumus

ответ

2

Вы можете сделать это с помощью одного for цикла:

for (var i = 0; i < wordcount.length; i++) { 
    var w = wordcount[i]; 
    if (i > 1) { 
     constrain++; 
     if (constrain <= 2) { 
      topwords.push({ 
       'word': w, 
       'freq': i 
      }); 
     } 
    } 
} 
+0

О да, я вижу - я могу использовать .length :) –

+0

@AmyNeville Это традиционный способ прохождения или прохода через массивы. –

+0

@AmyNeville Рад помочь –

1

Мы Array.prototype.forEach метод в JS. Вы можете использовать его как

wordcount.forEach(function(w, i) { 
    if (i > 1) { 
     constrain++; 
     if (constrain <= 2) { 
      topwords.push({ 
       'word': w, 
       'freq': i 
      }); 
     } 
    } 
}); 
+0

Интересно, это так же совместимо, как JQuery? –

+0

Да, действительно. Даже это более функциональный стиль написания и рекомендуемый способ. Я бы предложил вам также искать ['Array.prototype.map'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) и другие методы –

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