javascript中for循环的返回值

Returning values out of for loop in javascript

本文关键字:返回值 循环 for javascript      更新时间:2023-09-26

我有以下功能:

  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也是如此。如何将这些值作为字符串访问,以便在代码的另一部分中使用?

提前感谢。

您可以在较新版本的js中使用yield,但这是没有问题的。你可以这样做:

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;
} 
  • 返回语句一旦执行,就会中断循环。因此考虑将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;
  }