javascript - 我无法理解这段代码是如何工作的

标签 javascript arrays

我在理解代码到底如何向 randFace() 返回值时遇到困难;

我已经理解了rand(0,5)的用法,这样它就可以随机生成一个数字,而这个数字恰好是["crown", "anchor",..]数组的长度。

我无法理解代码的工作原理。假设,rand(0,5) 返回 3 作为数字,那么我确实知道 randFace() 将返回“黑桃”,但是如何返回?

function rand(m, n) {
return m + Math.floor((n - m + 1)*Math.random());
}

// randomly returns a string representing one of the six
// Crown and Anchor faces

function randFace() {
return ["crown", "anchor", "heart", "spade", "club", "diamond"]
[rand(0, 5)];
}

最佳答案

这是您的代码,为了更容易理解而重写。做同样的事情。只提取了两个变量并给它们命名。

function randFace() {
  var faces = ["crown", "anchor", "heart", "spade", "club", "diamond"];
  var faceIndex = rand(0, 5);
  return faces[faceIndex];
}

关于javascript - 我无法理解这段代码是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528932/

相关文章:

javascript - Webpack 输出文件的用途是什么?

javascript - Strongloop 环回验证和请求生命周期

javascript - 图片关闭时制作动画 Photoswipe

c# - 如何让我的快速排序算法同时按升序和降序对数组进行排序?

java - Java中的二维数组打印格式

javascript - 为什么这些 x,y 坐标在 fillRect 中起作用

javascript - React 渲染不同的组件

arrays - 从另一个对象数组创建一个对象数组,稍后使用 map 重建原始对象数组

javascript - 将对象键连接/推送到数组

java - 这个Java程序有什么问题?