Random()返回1或-1

时间:2018-09-26 12:43:47

标签: javascript after-effects

我正在研究After Effetcs表达式。我正在尝试使用随机函数返回1或-1,但永远不会返回0。

我需要返回介于10到20或-20到-10之间的整数。

这似乎很简单,但是我没有找到该怎么做的方法。有什么想法吗?

感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

您可以采用2的因数,然后用-1替换为零。

function random() {
   return Math.floor(Math.random() * 2) || -1;
}

var i = 10;

while (i--) console.log(random());

答案 1 :(得分:2)

我从Getting a random value from a JavaScript array那里窃取了一些灵感

var myArray = [1, -1]
var rand = myArray[Math.floor(Math.random() * myArray.length)];
console.log(rand);

将所需的任何数字放入该数组。

答案 2 :(得分:0)

关于这一点的所有答案都不错,但我想我还是可以添加这个:)

console.log("1 or -1: ", (()=>{if(Math.random() > 0.5) return 1; else return -1})())
console.log("Between 10 and 20: ", Math.floor(Math.random()*11+10));
console.log("Between -10 and -20: ", Math.floor(Math.random()*11+10) * -1);

答案 3 :(得分:0)

非常感谢那些答案。我用了类似的东西,它正在工作,但也许不是完美的:

random(10,20)*(Math.round(random())-0.5)*2

我不确定获得1或-1的概率是否正好是2分之一。