我一直在使用具有某种功能的遗留代码,它应该为数组返回一个随机项,而我看到下面的表达式:“Math.random()* arr.length | 0”如何为数组返回一个随机索引
array[Math.random() * arr.length | 0]
我的第一印象是尝试已了解the |
operator,但我无法弄清楚如何做的工作。 我测试的铬控制台中的表达,我看到总是返回与此有效的索引:
let array = [1,2,3,4]
for(let i = 0; i < 5000; i++){
console.log(array[Math.random() * arr.length | 0]);
}
“的Math.random()* arr.length | 0”是如何工作的回报,随机指数数组?
哦!它只是一个黑客coerse int整数!谢谢! –
Yeap,实际上,最好使用'Math.trunc()'来代替,意图更清晰。 –
是的,我会用它。感谢您的建议。 –