在Javascript代码段中设置if / else函数:
function compareStatus() {
if(valueTruebutton === statusRandomrapper) {
alert("Both status are true");
} else {
alert("Nah, those status are different");
}
}
我使用的两个变量来自:
var valueTruebutton = document.getElementById("truebutton").value;
和
var rapperA = {firstName:"A$AP Rocky", image:"test.jpg", clip:"test.com", status:"true", smallthumbnail: "test.png"};
真正的按钮来自这一行:
<button id="truebutton" onclick="compareStatusTrueButton()" style="background-color: #4BCC92; border: none; font-size: 2em;" value="true">True</button>
完整的参考代码是here。基本上我为页面中的2个元素赋值,我尝试比较函数。 大部分时间它都能正常工作,但有时它无效。
我试图通过在控制台中打印两个值来调试它:
console.log("randomRapper.name:" + randomRapper.firstName + ", randomRapper.status: " + randomRapper.status + " valueTruebutton: " + valueTruebutton + " valueFalsebutton: " + valueFalsebutton )
甚至添加了typeof
以确保该值具有相同的格式。在[我点击了'false'按钮,该按钮分配了'false'值,即使Rapper的'status = false',它也不会将两个值都检测为相同的值。
*修改:直播页面以查看实时问题https://principal-audits-75550.netlify.com
答案 0 :(得分:0)
如果您想正确选择一个随机说唱歌手,那么您应该按如下方式进行:
var randomRapper = rappers[Math.floor(Math.random()*rappers.length)];
var statusRandomrapper = randomRapper.status;
原因:Math.random
,正如预期的那样,每次调用时都会提供一个随机值。由于目前只有3个说唱歌手,结果有时会匹配,有时则不会。如果你有一个1000名说唱歌手的名单,通常你会得到错误的结果。
答案 1 :(得分:0)
在您的代码中,您声明两个值:
var statusRandomrapper = rappers[Math.floor(Math.random()*rappers.length)].status;
var randomRapper = rappers[Math.floor(Math.random()*rappers.length)];
statusRandomrapper
是随机说唱歌手的状态,randomRapper
是包含不同说唱歌手的对象。
所以,当你去检查价值时,你要检查另一个说唱歌手。
您需要做的是:
var randomRapper = rappers[Math.floor(Math.random()*rappers.length)];
var statusRandomrapper = randomRapper.status;
此代码仅生成一个说唱歌手(randomRapper
),然后将statusRandomrapper
设置为该对象的status
字段。