我试图从不同的函数返回多个值。 起点是二维数组。代码示例如下:
var items = [[0,1],[1,2],[0,2]];
var a;
var b;
function first() {
a = items[Math.floor(Math.random() * items.length)];
return a;
}
function second() {
b = a[Math.floor(Math.random() * 2)];
return b;
}
function third (){
first();
second();
}
third();
如果我在函数之外编写代码,一切都会正常。当我使用函数并将 return 替换为 console.log 时,它可以工作。如果我使用函数并返回(如上面报告的代码中所示),它会给我未定义的结果。我没有找到解决方案。为什么代码不起作用?
提前致谢
最佳答案
如果您在函数外部声明变量 a 和 b(如在代码中),则无需返回值。 a 和 b 将被定义。 但如果您没有在外部声明它,则将返回值存储在数组变量中。
var items = [[0,1],[1,2],[0,2]];
function first() {
a = items[Math.floor(Math.random() * items.length)];
return a;
}
function second() {
b = a[Math.floor(Math.random() * 2)];
return b;
}
function third (){
var a = first();
var b = second();
var arr = [];
arr.push(a);
arr.push(b);
return arr
}
var t = third();
console.log(t[0], t[1]);
关于Javascript:从不同的函数返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41738235/