Javascript JS括号符号说明
提前谢谢。我有一个JavaScript的概念问题Javascript JS括号符号说明,javascript,arrays,iteration,Javascript,Arrays,Iteration,提前谢谢。我有一个JavaScript的概念问题 function rand(x,z) { return x + Math.floor((z-x+1)*Math.random()); } function getLetter() { return ['a', 'b', 'c', 'd', 'e', 'f'][rand(0,5)]; } console.log(getLetter()); // f // a // c ..... 我很难理解getLetter()函数如何通
function rand(x,z)
{ return x + Math.floor((z-x+1)*Math.random()); }
function getLetter()
{ return ['a', 'b', 'c', 'd', 'e', 'f'][rand(0,5)]; }
console.log(getLetter()); // f // a // c .....
我很难理解getLetter()
函数如何通过返回两个数组来记录随机选择的字母。如果我颠倒数组顺序,它将作为未定义的
记录在控制台中
最终,我以前从未见过这种语法,这让我措手不及。
getLetter()
函数的行为是否与.map()
和.filter()
方法相同?将返回值作为从数组中随机选取的行:
var letters = ['a', 'b', 'c', 'd', 'e', 'f']
像
[rand(0,5)]
是行选择器(从第一行id到最后一行id的随机数,从0到5)
您的getLetter()
函数可以看作:
function getLetter() {
var letters = ['a', 'b', 'c', 'd', 'e', 'f'];
return letters[rand(0,5)];
}
您的
getLetter
函数实际上返回的是一个一维数组的元素。基本上,它是创建一个由6个字符(a到f)组成的数组,然后返回由rand
函数生成的索引所指向的一个字符
相反(
返回[rand(0,5)][a',b',c',d',e',f'];
)不起作用,因为在这种情况下生成的数组对象是一个单元素数组(其中包含一个介于0和5之间的随机数)。rand
返回传入的两个数字之间的随机整数(包括--0
和5
是有效的返回,中间的任何整数也是有效的)
getLetter
利用它作为一种手段,在包含六个字母的字母数组中获取随机索引。因此:
['a','b','c','d','e','f'][rand(0,5)]
调用rand
。让我们假设它返回2
。那么我们有:
['a',b',c',d',e',f'][2]
这是数组中的第三项,因此返回“c”。没有两个数组。只有一个数组,使用括号表示法引用数组中的索引。下面是代码的基本功能:
function getLetter() {
var options = ['a', 'b', 'c', 'd', 'e', 'f'], //defined array
randomNumber = rand(0,5), //generate random number
selection = options[randomNumber]; //reference index with the random number
return selection; //return the value
}
rand
函数只是返回包含区间[0,5]
中的一个数字
getLetter
将只返回['a','b','c','d','e','f']
中由rand
生成的随机字符处的字符
['a',b',c',d',e',f']
是一个数组,表达式[x]另一方面,
是从表达式数组的x
索引中获取元素从零开始没有返回两个数组的掌心啊,是的!括号表示法!我现在觉得有点傻,因为我习惯使用
表示法作为标识符。@anied@VHS@Matiboux你的答案是吗lped我巩固了这个想法,现在我正在尝试使用括号和圆点符号的不同方法。这是一种可靠的推杆方式。谢谢!没问题!!;3
function getLetter() {
var options = ['a', 'b', 'c', 'd', 'e', 'f'], //defined array
randomNumber = rand(0,5), //generate random number
selection = options[randomNumber]; //reference index with the random number
return selection; //return the value
}