全部 首先,希望大家度过一个愉快的感恩节。 其次,我不知道如何做到这一点。我需要为婚礼策划师编写一个程序。他们希望为每对夫妇创建一个礼物登记册。他们希望根据送礼者是新娘一方还是新郎一方来分割礼物。他们还知道特定的礼物( toastr 、银器和高脚杯)往往会重复出现,因此他们希望列出这些礼物并在其下方注明送礼者的姓名。重复的礼物只是客户告诉您的礼物( toastr 、银器和高脚器皿),他们不希望您确定哪些礼物是重复的,他们只是在寻找特定的三件礼物。
所以我的输出应该显示为: 新郎方: 1.汤姆: toastr 2.比尔:银器 3.鲍勃:高脚杯 4.史蒂夫:雷克萨斯
新娘方: 1.吉尔: toastr 2.苏西:银器 3.拍拍:高脚杯 4.凯伦:马
多个 toastr : 汤姆 吉尔
但是,它与我编码的内容不一致,并且陷入了困境。我也无法弄清楚如何制作第三个累加器(我假设我必须制作它来存储不同类型的礼物?)任何我应该走的方向的输入都会很棒。
代码:
<script type="text/javascript">
<!--
//Assumptions
var brideCounter = 0;
var groomCounter = 0;
var gift, sideOfFamily, groomAccum, brideAccum;
var giftBride, giftGroom,multipleItems;
//initializing loop
var registry = "yes";
//Start Looping
while (registry == "yes")
{
name = prompt("What is your name?","");
sideOfFamily = prompt("Which side of the family are you on? bride or groom","");
if (sideOfFamily == "groom")
{
giftGroom = prompt("What type of gift do you have?","");
groomCounter= groomCounter + 1;
if (groomCounter = 1)
{
groomAccum = "Groom Side:<br>" + groomCounter + ". " + name+ ": " + giftGroom;
}
else
{
groomAccum = groomAccum + ", " + groomCounter + ". " + name + ": " + giftGroom;
}
alert(groomAccum);
}
else
{
giftBride = prompt("What type of gift do you have?","");
brideCounter = brideCounter + 1;
if (brideCounter = 1)
{
brideAccum = "Bride Side: " + brideCounter + ". " + name + ": " + giftBride;
}
else
{
brideAccum = brideAccum + ", " + brideCounter + ". " + name + ": " + giftBride;
}
alert(brideAccum);
}
registry = prompt("Are you registering for the wedding gifts?","");
}
//Output
document.write(groomAccum + brideAccum);
document.write(multipleItems);
// -->
</script>
最佳答案
您的问题是您使用赋值运算符 (=
) 而不是比较运算符(===
或 ==
)。
最好使用 ===
,它比 ==
更快,如果您忘记了,该代码也可以工作。
参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators有关比较运算符的完整信息。
我还清理了你的代码。
//Assumptions
var keys = ['groom','bride'],
counter = {bride: 0, groom: 0},
gift = {},
accum = {bride: '', groom: ''},
sideOfFamily;
//initializing loop
var registry = true;
//Start Looping
while (registry)
{
name = prompt("What is your name?","");
do {
sideOfFamily = (prompt("Which side of the family are you on? bride or groom", keys[Math.random()*2 | 0]) || '').toLowerCase();
} while (keys.indexOf(sideOfFamily) === -1);
gift[sideOfFamily] = prompt("What type of gift do you have?","");
if(++counter[sideOfFamily] === 1) {
accum[sideOfFamily] = sideOfFamily[0].toUpperCase() + sideOfFamily.substring(1) + " Side:\n";
} else {
accum[sideOfFamily] += ", ";
}
accum[sideOfFamily] += counter[sideOfFamily] + ". " + name + ": " + gift[sideOfFamily];
alert(accum[sideOfFamily]);
registry = confirm("Are you registering for the wedding gifts?");
}
//Output
output.innerHTML = '';
output.appendChild(
document.createTextNode(accum.groom + '\n\n' + accum.bride)
);
如果您想支持不支持 indexOf
的旧浏览器,请使用 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Compatibility 中的代码
关于javascript - 我是否需要创建第三个累加器来保存此 while 循环中的项目类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305992/