【问题标题】:Comparing string with array element in javascript [closed]将字符串与javascript中的数组元素进行比较[关闭]
【发布时间】:2012-11-22 22:31:35
【问题描述】:

我正在尝试编写一个代码,该代码将从列表中选择一个随机图像并要求用户尝试识别它。到目前为止,我可以生成图像,但在尝试将字符串与数组元素进行比较时遇到了麻烦。

var imageArray=new Array()
myImages[1]="image1.jpg"
myImages[2]="image2.jpg"
myImages[3]="image3.jpg"

var randNum=Math.floor(Math.random()*imageArray.length);

function pickImg()
{
if {randNum==0)
{
randNum=1;
}
document.write('<img src="'+imageArray[randNum]+'" border=0>');
}

pickImg()

function checkAns()
{
var str = imageArray[randNum];
var n = str.search('textBox');
if(n = -1)
{
alert{"Wrong Answer")
}
Else
{
alert("Right Answer")
}
}

当谈到第二个函数并比较两个字符串时,我不知所措。感谢您的帮助。

【问题讨论】:

  • ...也应该是else,而不是Else
  • @AlexanderPavlov 该死的,太多了……
  • 很多错误发生在那里...我建议你从头开始学习 JS 正确的方式。你可以从这里开始developer.mozilla.org/en-US/docs/JavaScript
  • 也许我应该恢复编辑,这有点回答他的问题。

标签: javascript arrays string function search


【解决方案1】:

你的代码有错误

if(n = -1)//Assigns -1 as the value of 'n'(Used assignment operator here)
{
   alert{"Wrong Answer")
}
Else
{
   alert("Right Answer")
}

试着把代码改成

if(n == -1)//Checking whether the value of 'n' is -1 or not(comparison)
{
    alert("Wrong Answer")
}
else
{
   alert("Right Answer")
}

【讨论】:

  • 请花时间解释分配和比较。 =)
  • 您的代码中还有一个语法错误。 alert{
  • 感谢所有回复!我正在尝试将用户输入与数组元素的一部分进行匹配,以制作一个简单的记忆游戏。如果输入正确或不正确,页面将显示。
【解决方案2】:

假设您的输入具有 ID textBox,您应该使用:

var check = str.indexOf(document.getElementById('textBox').value);
if(check == -1)
{
...
  • search 需要一个正则表达式对象作为参数,而不是字符串
  • = 运算符分配值,而== 运算符比较值
  • JS 区分大小写:您正在寻找else,而不是Else
  • 缩进对于可维护的代码非常重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2012-09-10
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多