使用函数内部的数组来存储名称

时间:2014-06-20 21:50:46

标签: javascript html

我正在尝试练习javascript,我在一个网站上阅读了一个关于建立一个小系统的小挑战,用户可以关注和取消关注。我仍然是javascript和编程的新手,所以请原谅我的无知。以下是我提出的建议。我试图让这一点脱颖而出,因为这可能是学习语言imo的最佳方式。

基本上在这个小函数中,我在函数中创建了一个空数组。然后我将函数设置为标记中的onClick处理程序。这是存储名称或事物的好方法吗?我是在正确的轨道上完成这项小任务吗?

<!DOCTYPE html>
<html>
<head>

</head>

<body>

<input id="searchbox" value = "names">
<button type="radio" onClick="listOfPeople();">

<script type="text/javascript">
"use strict";

function listOfPeople (){

var storedPeople = [];

listOfPeople();


};





</script>

</body>

</html>

4 个答案:

答案 0 :(得分:1)

由于你已经在listOfPeople函数中声明了storedPeople数组,这将限制“范围”,你可以在其中添加或删除项目到listOfPeople函数。

这样的东西当前不能用于你的设置,因为storedPeople数组是在一个“闭包”中,因为它是在一个函数内声明的。

<script type="text/javascript">
function listOfPeople (){
    var storedPeople = [];
    listOfPeople();
};
alert(storedPeople[0]);
</script>

这应该显示如何在函数外部声明数组,因此它具有“更宽的范围”,这意味着它可以通过listOfPeople函数内部访问。

<!DOCTYPE html>
<html>
<body>

<input id="searchbox" value = "names">
<button type="radio" onClick="listOfPeople();">

<script type="text/javascript">

    // declare the storedPeople array outside of the function
    var storedPeople = [];

    // modify the array in the function
    function listOfPeople (){
        storedPeople.push(document.getElementById("searchbox").value);
    };

</script>

</body>
</html>

答案 1 :(得分:0)

您正确地拨打了按钮。

但是你的javascript函数中存在一个问题:在listOfPeople&#39;内部。你打电话给listOfPeople&#39;。 你不应该这样做,因为它永远不会一次又一次地停止调用同一个函数。然后堆栈溢出:超出最大调用堆栈大小。

您的功能应如下所示:

function listOfPeople (){
var storedPeople = [];
};

否则这是一个好的开始!

答案 2 :(得分:0)

你没有明确提到你需要你的代码要做什么。 像其他提到的那样,listofpeople()是recusrive,但没有条件打破它。 尝试在http://plnkr.co/中创建代码,并解释您想要的是什么,而不是发生了什么。

答案 3 :(得分:0)

如果您想要按照用户类型逐步进行搜索,可以使用“onchange&#39;请参阅此处的演示http://www.w3schools.com/jsref/event_onchange.asp

作为Zack代码的修改,它将是

<body>

<input id="searchbox" value = "names" onchange="listOfPeople();">
<button type="radio" onClick="listOfPeople();">