Возврат значений из цикла for в javascript

у меня есть следующие функции:

  function getId(a){
    var aL = a.length;
    for(i = 0; i < aL; i++ ){
      return a[i][2].split(":", 1)[0];
    }    
  }                          

и при использовании console.log() внутри функции вместо return Я получаю все значения в цикле, и то же самое для document.write. Как получить доступ к этим значениям в виде строки для использования в другом разделе моего кода?

спасибо заранее.

3 ответов


С yield в более новых версиях js, но об этом не может быть и речи. Вот что вы можете сделать:

function getId(a){
  var aL = a.length;
  var values = [];
  for(i = 0; i < aL; i++ ){
    values.push(a[i][2].split(":", 1)[0]);
  }    
  return values.join('');
}  

вы должны кэшировать строку и вернуться позже:

function getId(a){
    var aL = a.length;
    var output = '';
    for(var i = 0; i < aL; i++ ){
       output += a[i][2].split(":", 1)[0];
    }    
    return output;
} 

  • возвращение заявления разрывы цикл после его выполнения. Следовательно рассмотреть поставить возвращение сообщении за пределами на цикл.
  • поскольку вы хотите вернуть строку, вы создадите переменную и назначьте его пустой строке.(Здесь будут добавлены / добавлены результаты из петли.)
  • возвращает строковую переменную.

таким образом, окончательный код будет выглядеть...

function getId(a){
    var result = '';
    var aL = a.length;
    for(i = 0; i < aL; i++ ){
      result += a[i][2].split(":", 1)[0];
    } 
    return result;
  }