我一直试图让“arrToys”和“arrNames”彼此相邻,所以他们在一个对象中,但我不知道如何做到这一点,我能够让它们彼此平行但是我被告知我不允许这样做,所以有人可以告诉我。谢谢
function start() {
document.getElementById("task").innerHTML="Task 8";
var arrNames = [];
var vName = "";
var vToys = "";
vName = prompt("Enter dog name (leave blank to stop)");
vToys = parseInt(prompt("Enter dogs toys (leave blank to stop)"));
while (vName.length > 0) {
arrNames.push(vName);
arrNames.push(vToys);
vName = prompt("Enter dog name (leave blank to stop)");
vToys = parseInt(prompt("Enter dogs toys (leave blank to stop)"));
}
var name = function name(dogs) {
return dogs.map(function(dogName, index) {
return "Dog "+(index+1)+": "+ dogName;
});
};
var Tname = function Tname(toys) {
return toys.map(function(toyNum) {
return "No. of toys: " + toyNum;
});
};
arrNames.forEach(function(entry) {
var vOutput = "Dog names and No. of toys: <br/>" + name(arrNames).join("<br/>") + Tname(arrNames).join("<br/>");
document.getElementById("output").innerHTML=vOutput;
});
}
答案 0 :(得分:2)
听起来你得到的反馈是,你应该使用一组对象而不是并行数组。 (这是很好的反馈。)
所以你有一个阵列:
var stuff = [];
然后你得到一个狗的名字和玩具清单:
name = prompt("Enter dog name (leave blank to stop)");
toys = parseInt(prompt("Enter dogs toys (leave blank to stop)"));
然后将对象推送到数组上,如果有的话:
stuff.push({
name: name,
toys: toys
});
看起来你应该在之后对它们进行一些处理。在Array#forEach
或Array#map
内,您将处理具有name
和toys
属性的对象。 E.g:
stuff.forEach(function(entry) {
console.log(entry.name + " has these toys: " + entry.toys);
});
我在这里故意不为您编写完整的代码,只是指出要做什么的必要部分。