有没有办法让 JavaScript 选择加号或减号运算符?
Is there a way I can make JavaScript choose plus or minus operator?
我希望我的 JavaScript 能够随机选择使用 -
运算符进行减法或使用 +
运算符进行加法。有没有办法让它在两者之间随机选择?
是的,你可以。
获取随机数
Math.random();
如果随机数小于0.5,则乘以-1,否则什么都不做。
我会这样做:
function getSignMultiplier() {
if (Math.random() < 0.5) {
return -1;
} else {
return 1;
}
}
然后使用它:
var numbers = [
5 * getSignMultiplier(),
5 * getSignMultiplier(),
5 * getSignMultiplier()
];
document.getElementById('output').innerText = numbers.join(', ');
JSFiddle:https://jsfiddle.net/2snbgyw2/1/
正如@Chizzle所说,要走的路是Math.random(),但如果你想更精确一点,你应该使用:
Math.random() <= 0.5
这样的机会是50到50,区间可以用[0,0.5)和[0.5,1)来描述。 Math.random() returns 0(含)和 1(不含)之间的随机数。
这是一个带有函数的简单代码片段:
function randSumSub(a, b) {
if (Math.random() <= 0.5) {
result = a - b;
} else {
result = a + b;
}
return result;
}
#result {
display: inline-block;
width: 20px;
height:20px;
text-align: center;
border: 1px solid red;
}
2 +|- 5
<button onclick="document.getElementById('result').innerHTML = randSumSub(2,5);">=</button>
<div id="result">?</div>
我建议使用内联语法和其他人提到的 Math.random() 技巧:
var a = 1;
var b = 2;
var a_plusOrMinus_b = (Math.random()<=0.5 ? a+b : a-b);
alert(a_plusOrMinus_b);
我希望我的 JavaScript 能够随机选择使用 -
运算符进行减法或使用 +
运算符进行加法。有没有办法让它在两者之间随机选择?
是的,你可以。
获取随机数
Math.random();
如果随机数小于0.5,则乘以-1,否则什么都不做。
我会这样做:
function getSignMultiplier() {
if (Math.random() < 0.5) {
return -1;
} else {
return 1;
}
}
然后使用它:
var numbers = [
5 * getSignMultiplier(),
5 * getSignMultiplier(),
5 * getSignMultiplier()
];
document.getElementById('output').innerText = numbers.join(', ');
JSFiddle:https://jsfiddle.net/2snbgyw2/1/
正如@Chizzle所说,要走的路是Math.random(),但如果你想更精确一点,你应该使用:
Math.random() <= 0.5
这样的机会是50到50,区间可以用[0,0.5)和[0.5,1)来描述。 Math.random() returns 0(含)和 1(不含)之间的随机数。
这是一个带有函数的简单代码片段:
function randSumSub(a, b) {
if (Math.random() <= 0.5) {
result = a - b;
} else {
result = a + b;
}
return result;
}
#result {
display: inline-block;
width: 20px;
height:20px;
text-align: center;
border: 1px solid red;
}
2 +|- 5
<button onclick="document.getElementById('result').innerHTML = randSumSub(2,5);">=</button>
<div id="result">?</div>
我建议使用内联语法和其他人提到的 Math.random() 技巧:
var a = 1;
var b = 2;
var a_plusOrMinus_b = (Math.random()<=0.5 ? a+b : a-b);
alert(a_plusOrMinus_b);