【问题标题】:store user input in an array and display on screen将用户输入存储在数组中并显示在屏幕上
【发布时间】:2020-09-20 04:13:15
【问题描述】:

将信息存储在数组中(firstName、lastName、accNumber 等)。我已经在数组中有一些数据。我想询问用户输入并将该输入推送到数组中并将其保存并显示在屏幕上(而不是在控制台中)。新信息也没有保存在数组中。我使用 prompt 和 form 。 from 不工作。

/* creatting array  */
        var customer = [
            {fname: "Jhon", lname: "Yojin", accNo: 1, balance: 400},
            {fname: "Jane", lname: "Jin", accNo: 2, balance: 500},
            {fname: "Emily", lname: "Sena", accNo: 5, balance: 100}
        ];
        console.log(customer.length);
        console.log(customer[1].fname);
        console.log(customer[2].lname);
        var newName = prompt("what is your lnamename?");
        customer.push(newName);
        console.log(customer);

    /*function to add data in array*/    
    function addInArray() {
        var  addName = document.getElementById("#nameInput");
        customer.push(addName.value);
        addName.value = "";
        console.log(customer);

    } 
     /* display array*/
    function displayArray(){
        for(var i=0; i < customer.lenght; i++){
            document.write("customer" + i + customer[i] + "</br>");
            document.getElementById("#showName").innerHTML = customer[i];
        }
    }    
    </script>

    <form>
        <input id="nameInput" type="text"/ placeholder="yourInfo">
        <button type="button" id="add" onclick="addInArray();">Add </button>
        <button type="button" id="myList" onclick="displayArray();">Display</button>
    </form>  
        <div id="box"></div> 
        <div id="showName"> </div>
    </body>

【问题讨论】:

  • for(var i=0; i &lt; customer.lenght;
  • 显示数组每个元素的代码部分。
  • 正确,但lenght 是一个错字。应该是length,所以我问你是不是只在这里输入错误,或者在你的实际代码中是这样的。
  • 你是对的!长度是错字。谢谢

标签: javascript arrays function input display


【解决方案1】:

您在使用getElementById时不应该写#

/* creatting array  */
var customer = [
    {fname: "Jhon", lname: "Yojin", accNo: 1, balance: 400},
    {fname: "Jane", lname: "Jin", accNo: 2, balance: 500},
    {fname: "Emily", lname: "Sena", accNo: 5, balance: 100}
];

displayMyAcc()
function displayMyAcc(){ 
var myAccNo = prompt("what is your acc number?");
document.getElementById("showName").innerHTML=JSON.stringify(customer.filter(x=>x.accNo==myAccNo)[0]);
}

/*function to add data in array*/    
function addInArray() {
  var  addName = document.getElementById("nameInput");
  customer.push(addName.value);
  addName.value = "";

} 
/* display array*/
function displayArray(){
  for(var i=0; i < customer.length; i++){
      document.getElementById("showName").innerHTML += JSON.stringify(customer[i]);
  }
}
<form>
    <input id="nameInput" type="text"/ placeholder="yourInfo">
    <button type="button" id="add" onclick="addInArray();">Add </button>
    <button type="button" id="myList" onclick="displayArray();">Display</button>
</form>  
<div id="box"></div> 
<div id="showName"> </div>

【讨论】:

  • 尝试询问用户 accNumber 作为输入并将其与数组 acc 进行比较。编号并显示它。只有特定的 acc 编号详细信息,而不是整个数组。
  • function displayMyAcc(){ var myAccNo = prompt("你的acc号码是多少?"); for(i = 0; i
  • 我更新了答案。你可以检查一下。使用过滤器而不是 for 循环进行搜索
  • 非常感谢!
  • 为什么控制台显示这个错误?未捕获的类型错误:无法在 displayMyAcc 处设置属性“innerHTML”为 null
猜你喜欢
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多