Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单Javascript不';我什么也不退_Javascript - Fatal编程技术网

简单Javascript不';我什么也不退

简单Javascript不';我什么也不退,javascript,Javascript,我正在努力学习一些Javascript。我写了这段代码,它应该返回a、b、c、d,如果字母a在var字母中,它应该警告消息“Yes it is true”当我运行代码时,它不会返回任何信息 有人知道为什么吗 <script type="text/javascript"> var letters = ["a", "b", "c", "d"] var numbers = ["one", "two", "three", "four"] for(x=0; x &l

我正在努力学习一些Javascript。我写了这段代码,它应该返回a、b、c、d,如果字母a在var字母中,它应该警告消息“Yes it is true”
当我运行代码时,它不会返回任何信息

有人知道为什么吗

<script type="text/javascript">

    var letters = ["a", "b", "c", "d"]
    var numbers = ["one", "two", "three", "four"]

    for(x=0; x < letters.length; x++) {
        document.write(letters);
        if(a in letters)  {
            document.write("Yes it is true");
        }
    }

</script>

变量字母=[“a”、“b”、“c”、“d”]
变量数=[“一”、“二”、“三”、“四”]
对于(x=0;x
a是一个您尚未定义的变量,请不要与a“(字符串)混淆

字母是数组x是您正在迭代的数组中的索引字母[x]是索引为x的特定元素

因此,您可以执行“a”==字母[x]比较来修复代码

作为旁注,我可以建议一个更好的方法来解决你的问题

您试图通过迭代整个列表并比较元素来解决这个问题。如果您想学习迭代之类的概念,这是可以的,但是在本例中,使用字符串对象中的inbuild方法可以更轻松地完成这项工作

<script type="text/javascript">

    var letters = ["a", "b", "c", "d"]
    var numbers = ["one", "two", "three", "four"]

    if(letters.indexOf("a") >= 0)  {
        document.write("Yes it is true");
    }

</script>

变量字母=[“a”、“b”、“c”、“d”]
变量数=[“一”、“二”、“三”、“四”]
如果(字母indexOf(“a”)>=0){
文件。写下(“是的,这是真的”);
}

indexOf返回作为参数传递的元素数组中的索引,如果它不在数组中,则返回-1。因此,如果该数字大于或等于零,则表示该元素存在于数组中。

请查看此代码,它是
字母的元素

<script type="text/javascript">

    var letters = ["a", "b", "c", "d"]
    var numbers = ["one", "two", "three", "four"]

    for(x=0; x < letters.length; x++) {
        document.write(letters);
        if(letters[x]=='a')  {
            document.write("Yes it is true");
        }
    }

</script>

变量字母=[“a”、“b”、“c”、“d”]
变量数=[“一”、“二”、“三”、“四”]
对于(x=0;x
您还没有定义任何名为a的变量。您应该使用“a”来登记您的电子邮件

答案:

for(x=0; x < letters.length; x++) {
        document.write(letters + "<br/>");
        if(a = letters)  {
            document.write("Yes it is true" + "<br/>");
        }
    }
for(x=0;x”);
如果(a=字母){
写下“是的,这是真的”+“
”; } }
打印输出: a、 b、c、d 是的,这是真的 a、 b、c、d 是的,这是真的 a、 b、c、d 是的,这是真的 a、 b、c、d
是的,这是正确的

而不是字母中的
a,您应该使用
letters.indexOf('a')>-1
。有什么区别

首先,
a
本身就是一个变量。您尚未定义此变量。其次,
中的
不搜索值,只搜索键。此数组的键为0,1,2,3<另一方面,code>indexOf
,则执行搜索值


此外,您不需要为此循环使用

您可以通过其索引访问每个元素



    if(letters[index]=='a')  {
        document.write("Yes it is true");
    }


可以使用letters.indexOf(a)代替for循环,它将返回数组“letters”中变量“a”的索引(如果未找到,则返回-1)。但在此之前,您需要定义变量“a”

如果您真的想保持for循环,您应该这样使用它:

var a="a";
for(x=0; x < letters.length; x++) {
        document.write(letters);
        if(letters[x]==a)  {
            document.write("Yes it is true");
        }
var a=“a”;
对于(x=0;x
ah没有看到您的评论:-)谢谢,无论如何,在
中使用
是错误的方法。
中检查键。查看我的答案。您正在设置变量,而不是比较字符串。