JavaScript函数不返回所有值

时间:2018-03-13 05:37:25

标签: javascript

我刚开始学习JavaScript,当我运行下面的代码时,它只返回orange,我认为它应该返回所有值。

function Array(whatever) {
    for (var i=0; i < whatever.length; i++) {
        return whatever[i];
    }
}

var list = Array(['orange','cat','mouse','dog','pen']);

return在for循环中没有按预期工作,有人可以解释原因吗?

4 个答案:

答案 0 :(得分:1)

问:“回归”有什么作用?

答:退出该功能。立即。

BEFORE 你的循环有机会打印“橙色”以外的任何东西。

在完成功能需要完成的所有事情之前,不应该致电return

SUGGESTIONS:

数组“可能是一个功能不佳的名字。

你想要这个功能做什么?

例如,您可能希望它“打印数组”。在那种情况下:

function printArray(whatever) {
  for (var i=0; i<whatever.length; i++) {
    console.log("whatever[" + i + "]: " + whatever[i]);
  }
}

var list = Array(['orange','cat','mouse','dog','pen']);
printArray(list);

熟悉MDN(Mozilla开发人员网络)。

这是一个很棒的入门教程:

https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics

答案 1 :(得分:0)

您必须在功能结束时调用return

function Array(whatever) {
  var arr=[]
 for (var i=0; i<whatever.length; i++) {
   arr.push(whatever[i]); /// because you write here return then function exit
}
 return arr;
}

var list = Array(['orange','cat','mouse','dog','pen']);

答案 2 :(得分:0)

函数应该只在for循环后返回。

function Array(whatever) {
var tmpArr = [];
    for (var i=0; i<whatever.length; i++) {
        tmpArr.push(whatever[i]);
    }
return tmpArr;
   }

var list = Array(['orange','cat','mouse','dog','pen']);

答案 3 :(得分:0)

不要在for循环中使用return。 一旦return语句执行,它将退出函数,函数的剩余语句将不会执行。

//no need of for loop here
function Array(whatever) {
return whatever;
}
//if you want it line by line
function Array(whatever) {
for (var i=0; i<whatever.length; i++) {
    console.log(whatever[i]);
}
}