【发布时间】:2018-11-12 09:32:27
【问题描述】:
我试图在以下代码中找到玩具的总和。我的尝试在那里:calcTotal,但它只提供 NaN 的结果。我之前在 calcTotal 函数中使用了相同的代码来计算数组值的总和,但无论出于何种原因,它在这里都不起作用,请帮忙?该程序的任务是让用户输入狗的名字和玩具数量,这些信息被放入一个对象中,然后推入一个数组中。然后需要显示玩具的总量。先感谢您。
function init() {
var dogarray = [];
var dogobject = {};
var dogname = prompt("Please enter dog name");
var toyamt = prompt("Please enter toy amount");
while (dogname != "" && toyamt != "") {
dogobject.name = dogname;
dogobject.toys = toyamt;
dogarray.push(Object.values(dogobject) + "<br />");
dogname = prompt("Please enter dog name");
toyamt = prompt("Please enter toys amount");
calcTotal(dogarray);
}
}
function calcTotal(dogarray) {
var sum=0;
var i;
for(i=0; i<dogarray.length; i++){
sum = sum + dogarray[i].toys;
}
document.getElementById("msg3").innerHTML = "Total number of toys: " + sum;
}
window.onload = init;
【问题讨论】:
-
dogarray是一个字符串数组 (Object.values(dogobject) + "<br />"),所以dogarray[i].toys是undefined。 -
谢谢str,我该如何调整代码才能正常工作?
-
删除
+ "<br />"。还将toyamt(它是一个字符串)转换为一个数字。例如使用dogobject.toys = +toyamt;
标签: javascript arrays object sum