Возврат значений из цикла for в JavaScript - PullRequest
11 голосов
/ 15 ноября 2011

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

  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 ]

9 голосов
/ 15 ноября 2011

Вы можете сделать это с 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('');
}  
1 голос
/ 15 ноября 2011

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

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;
} 
0 голосов
/ 19 сентября 2017
  • Оператор возврата прерывает цикл после его выполнения.Поэтому рассмотрите возможность помещения оператора return вне loop .
  • Поскольку вы хотите вернуть строку, вы создадите переменную и назначите еев пустую строку. (Здесь можно добавлять / добавлять результаты из цикла.)
  • возвращать строковую переменную.

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

function getId(a){
    var result = '';
    var aL = a.length;
    for(i = 0; i < aL; i++ ){
      result += a[i][2].split(":", 1)[0];
    } 
    return result;
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...