在javascript中返回for循环中的值

时间:2011-11-15 05:17:37

标签: javascript arrays object

我有以下功能:

  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 个答案:

答案 0 :(得分:9)

你可以在较新版本的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('');
}  

答案 1 :(得分:1)

你必须缓存字符串并稍后返回:

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;
} 

答案 2 :(得分:0)

  • 返回语句在执行循环后中断。因此 考虑将返回语句放在循环之外
  • 由于您想要返回一个字符串,您将创建一个变量和 将它分配给一个空字符串。(这是追加/添加结果的地方 来自循环。)
  • 返回字符串变量。

所以最终的代码看起来像......

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