Javascript:从不同的函数返回多个值

标签 javascript

我试图从不同的函数返回多个值。 起点是二维数组。代码示例如下:

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/

相关文章:

javascript - 如何在解析 json 时跳过 <br> 或任何字符串

php - 使用 PHP 从代码中剥离 Javascript on(任何)事件

javascript - 在 onPress 上使用时 this.setState 不是一个函数

javascript - 使用 Jasmine 测试在其返回值中包含当前时间的函数

javascript - javascript 移动盒子的自动播放

javascript - 如何从属性中收集信息并将它们作为数组发送?

javascript - 如何知道 Backbone 正面模型何时发生变化?

javascript - 将 THIS 传递到立即调用的函数表达式中

javascript - 如何使用仅返回单元格 a 的日期的公式自动填充单元格 C?

javascript - 服务器不渲染 ejs 文件