我现在正在完成一项任务,我需要将用户的输入值存储到对象变量中,然后将对象添加到数组中,连续执行此操作,直到用户将输入框留空,然后显示数组。这就是我到目前为止所做的:
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 ......
我还需要一个可以计算玩具总量的功能,如果有人可以提供帮助的话。 :)
提前致谢!
答案 0 :(得分:0)
您可以尝试以下
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;