1

我对Java和C++有很好的理解。我现在是第一次学习 JavaScript,但我的一项家庭作业遇到了麻烦。话虽这么说,我不想要直接的答案,只是指向正确的方向。我需要有两个函数:一个是找到给定数字的索引(从数组中),另一个是在某个值 x 上获取数组的所有数字。我尝试过 alert(findIndex(1))、document.write(findIndex(1),最近我尝试过使用按钮。除了我创建的按钮之外,什么都没有显示。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 //EN"
    "http://www.w3.org/TR/html4/strict.dtd>
<head>
<script type = "text/javascript">
var a = [0,1,2,3,4];
function findIndex(var c){
    for(var count = 0; count< a.length();count++;){
        if(a[count] == c){
            alert(count);
        }
    }
    alert("No index can be found");
  }
  function equalOrAboveX(int x){
    for(var count = 0; count< a.length();count++;){
      if(a[count]>= x){
    alert(a[count]);
      }
    }
  }
  </script>
</head>
<body>
<input type="button" value="findIndex(1)" onclick="findIndex(1)">
</body>
</html>
4

3 回答 3

2

length是属性,不是函数。

count< a.length()应该count < a.length

您的代码中还有其他几个问题。使用http://www.jshint.com/

我还建议您查看array.filterand array.indexOf

于 2013-11-10T17:36:04.883 回答
0

您有一系列语法错误..

  1. var c并且var x在函数参数定义中是错误的..删除var
  2. length是属性而不是函数。所以删除()它之后..
  3. 删除;循环定义末尾的

全部一起

var a = [0,1,2,3,4];
function findIndex(c){
    for(var count = 0; count< a.length;count++){
        if(a[count] == c){
            alert(count);
        }
    }
    alert("No index can be found");
  }

  function equalOrAboveX(x){
    for(var count = 0; count< a.length;count++){
      if(a[count]>= x){
    alert(a[count]);
      }
    }
  }
于 2013-11-10T17:36:57.343 回答
0

很高兴听到您正在学习 javascript。

一些东西。正如 plalx 所说length,它是一种属性而不是一种功能。此外,在为函数声明参数时不要使用var关键字。

通常,要查找这些故障,您可以使用浏览器中的 javascript 控制台。它可以通过(shift in linux/windows)cmd+alt+j在 chrome 中使用来显示。使用 node.js 运行不需要浏览器的代码也是一个好主意。

您可能要考虑阅读的 javascript 开发的常见模式是。匿名自调用函数,它看起来像这样。从某种意义上说,Javascript 与 C++ 非常相似,其中有很多陷阱和您必须知道的事情。

(function () {
  "use strict";
  //Code here
}());

强烈建议使用 plaxl 谈到的某种 linter。

祝你学习javascript好运

于 2013-11-10T17:41:52.200 回答