所以我的Javascript代码应该随机选择,但它总是选择第一个选项,即使我切换选项,它总是会进入顶部。我是否犯了错误,或者我怎样才能让它发挥作用?
function test() {
var values = ["1","2"],
valueToUse = values[Math.floor(Math.random() * values.length)];
// do something with the selected value
alert(valueToUse);
}
if (values = 1) {
window.location = "tail.html"; }
else if (values = 2) { window.location = "head.html"; }
答案 0 :(得分:6)
if (values = 1) {
这是分配,而不是比较(===
)。它永远都是真的。
此外,您永远不会致电test()
。
此外,您应该测试valueToUse
而不是values
,因为那是您分配随机选择的地方。
此外,valueToUse
和values
都是test()
函数的本地作用域,并且在其外部不可用。您的作业会创建一个新的全局变量。
答案 1 :(得分:2)
您需要使用==
(或===
)代替=
。
if (values == 1) {
// and so on...
}
答案 2 :(得分:1)
嗯,开始if (values = 1)
不是比较的有效方法。
=注释赋值所以基本上你将值设置为1.如果你想比较js中的值,你可以这样做if (values === 1)
。
在其他编程语言中你通常使用==而不是在js中如果你这样比较它只会检查值而不是变量的类型所以数字2将匹配字符串“2”
if (2 == "2") {//result is true}
。
如果使用===,它将检查值和类型
if (2 == "2") {//result is false}
答案 3 :(得分:1)
要使代码飞起,您可以从数组中返回一个随机选择的值,将其存储在value
中并检查它是否为新方向。我省略了window.location
而我们只是console.log
来显示比较结果。
比较严格,检查字符串。
function test() {
var values = ["1", "2"],
valueToUse = values[Math.floor(Math.random() * values.length)];
return valueToUse;
}
var value = test();
if (value === '1') {
console.log( "tail.html");
} else if (value === '2') {
console.log( "head.html");
}