Javascript - 将输入存储在对象中,然后存储到数组中,然后显示在页面

时间:2018-05-21 11:22:24

标签: javascript arrays object

我现在正在完成一项任务,我需要将用户的输入值存储到对象变量中,然后将对象添加到数组中,连续执行此操作,直到用户将输入框留空,然后显示数组。这就是我到目前为止所做的:

function init() {
    var vPerson1 = {};
    var people = [];
    var dogname = "";
    var toysamt = "";
    dogname = prompt("Please enter dog name");
    toysamt = prompt("Please enter toys amount");
    while (dogname != "" && toysamt != "") {
        vPerson1[dogname] = dogname;
        vPerson1[toysamt] = toysamt;
        people.push(vPerson1);
        dogname = prompt("Please enter dog name");
        toysamt = prompt("Please enter toys amount");
}

var vIndex = 0;
var outputpeople = "";
for (vIndex = 0; vIndex < people.length; vIndex++) {
outputpeople = outputpeople + people[vIndex] + "<br />";
document.getElementById("msg1").innerHTML = outputpeople;
}

}

window.onload = init;  

运行此代码:

我输入&#34; jeff&#34;和&#34; 3&#34;对于前两个输入框,然后&#34; bob&#34;和&#34; 6&#34;对于第二组输入框,我将接下来的两个文本框留空以结束循环。页面上显示的是:

[object Object]

[object Object]

输出意味着:

狗1名称:......玩具数量:......

狗2 ......

我还需要一个可以计算玩具总量的功能,如果有人可以提供帮助的话。 :)

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试以下

&#13;
&#13;
function init() {
        var people = [];
        var dogname = prompt("Please enter dog name");
        var toysamt = prompt("Please enter toys amount");
        while (dogname != "" && toysamt != "") {
            /* Assuming that you need "dogname" as the key 
             * and not the user input value as key */
            people.push({dogname, toysamt});
            dogname = prompt("Please enter dog name");
            toysamt = prompt("Please enter toys amount");
        }

        var toys = 0;
        /* You can prepare the output html using Array.reduce function */ 
        document.getElementById("msg1").innerHTML = people.reduce((a,c, i) => {
           a += "Dog " + (i+1) + " Name:" + c.dogname + ", No. of toys:" + c.toysamt + "<br/>";
           toys += parseInt(c.toysamt);
           return a;    
        }, "");
        document.getElementById("msg1").innerHTML += "Total Number of toys: " + toys;
}

window.onload = init;
&#13;
<div id="msg1"></div>
&#13;
&#13;
&#13;