使用do while循环返回数组

时间:2017-03-04 20:57:34

标签: javascript do-while

当num等于7时,为什么myAry不会被返回8次? myAry只返回一次以下代码。

function array(num) {
   var myAry = ['my array'];
   var i = num;
   do {
     i++;
     return myAry;
   } while (i < 15);
 }

 console.log(array(7));

3 个答案:

答案 0 :(得分:1)

您的数组函数被调用一次,它返回for循环的最后一次迭代。您需要在for循环中登录到控制台。

function array(num) {
var myAry = ['my array'];
   var i = num;
   do {
     i++;
     console.log(myAry);
   } while (i < 15);
 }

 array(7);

如果需要在其他地方使用返回的值,可以使用二维数组。

function array(num) {
  var returnAry = [];
  var myAry = ['my array'];
  var i = num;
    do {
      i++;
      returnAry = returnAry.concat(myAry);
    } while (i < 15);
  return returnAry;
}

console.log(array(7))

答案 1 :(得分:0)

我不确定您使用的语言是什么,但通常return关键字表示采用右侧的内容,将其发送到调用此函数的任何语言,并从那里继续。它基本上结束了你的功能。

答案 2 :(得分:0)

原因是你在循环中调用return,所以第一次循环运行时,它返回['my array']并且循环永远不会有多次执行的机会。 为了实现您正在寻找的内容,您需要将代码更新为此

function array(num) {
    var myAry = ['my array'];
    var result;
    do {
       num++;
       // update result based on what you're trying to accomplish here
    } while (num < 15);
    return result;
}

console.log(array(7));