简单的Javascript不会返回任何内容

时间:2014-03-21 10:16:34

标签: javascript

我试图学习一些Javascript。我已经写了这个代码,它应该返回a,b,c,d,如果字母a在var字母中,它应该警告消息"是的,它是真的"。
当我运行代码时,它不会给我任何回报。

谁能明白为什么?

<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>

7 个答案:

答案 0 :(得分:2)

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

首先,a本身就是一个变量。您尚未定义此变量。其次,in不会搜索,只搜索。这个数组的键是0,1,2,3。另一方面,indexOf会搜索值。

此外,您不需要for循环。

答案 1 :(得分:1)

a 是您尚未定义的变量,请勿与&#34; a&#34; (字符串)混淆

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

所以,你可以做&#34; a&#34; ==字母[x] 进行比较以修复代码。

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

您正试图通过遍历整个列表并比较元素来解决。没关系,如果你想学习像迭代这样的概念,但是在这种情况下,使用字符串对象indexOf中的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>

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

答案 2 :(得分:0)

请查看此代码,a是letters数组

的元素
<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>

答案 3 :(得分:0)

您尚未定义名称为a的任何变量。你应该使用'a'来检查你所在的地区

答案 4 :(得分:0)

您可以按索引

访问每个元素


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

答案 5 :(得分:0)

您可以使用letters.indexOf(a)代替for循环,它将返回变量的索引&#39; a&#39;在数组内部&#39;字母&#39; (如果没有找到-1)。但在此之前,您需要定义变量&#39; a&#39;。

如果你真的想保留for循环,你应该像这样使用它:

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

答案 6 :(得分:-2)

答案:

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

打印结果: A B C D 是的,它是真实的 A B C D 是的,它是真实的 A B C D 是的,它是真实的 A B C D 是的,这是真的