Возвращаемые значения из цикла 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
. Как я могу получить доступ к этим значениям в виде строки для использования в другом разделе моего кода?
Спасибо заранее.
Ответы
Ответ 1
Вы можете сделать это с 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('');
}
Ответ 2
Вам нужно кэшировать строку и вернуться позже:
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;
}
Ответ 3
- Оператор return разбивает цикл после его выполнения. Следовательно
рассмотрите размещение return оператора вне цикла .
- Поскольку вы хотите вернуть строку, вы создадите переменную и
присвойте ему пустую строку. (Здесь будет добавляться/добавлять результаты
из цикла.)
- возвращает строковую переменную.
Таким образом, окончательный код будет выглядеть как...
function getId(a){
var result = '';
var aL = a.length;
for(i = 0; i < aL; i++ ){
result += a[i][2].split(":", 1)[0];
}
return result;
}