我需要制作第三个累加器来保存while循环中的项类型吗
Do I need to make a third accumulator for saving the item types in this while-loop?
all首先,希望大家有一个伟大的感恩节。其次,我不知道该怎么做。我需要为婚礼策划人写一个程序。他们希望为每对夫妇建立一个礼物登记处。他们希望根据送礼者是新娘还是新郎来细分礼物。他们也知道特定的礼物(烤面包机、银器和干餐具)往往会重复,所以他们希望列出这些礼物,并在下面写上送礼者的名字。重复的礼物只是客户告诉你的礼物(烤面包机、银器和干餐具),他们不想让你确定哪些礼物重复,他们只是在寻找这三种特定的礼物。
因此,我的输出应该显示为:新郎侧:汤姆:烤面包机2.账单:银器3.鲍勃:餐具4.史蒂夫:雷克萨斯
新娘侧:1.吉尔:烤面包机2.苏西:银器3.专利:干器具4.卡伦:马
多台烤面包机:汤姆Jill
但是,这与我所编码的内容不一致,并且处于困境。我也不知道如何制作第三个累加器(我想我必须制作它来存储不同类型的礼物?)我应该朝哪个方向输入都很棒。
代码:
<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
- 基于两个条件退出While循环
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 为什么我的While循环不起作用
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 如何将while循环中生成的值存储到变量中,以便以后在JQuery中使用
- jquery,while循环在后台运行,同时while循环
- jquery悬停和while循环
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何修复 while 循环
- Jquery扩展点的宽度,同时通过while循环递增
- 斐波那契序列Javascript做while循环
- 为什么这个while循环不能使用AND逻辑运算符
- bluebird promise的while()循环正确(无递归?)
- JavaScript while循环没有'不能在有条件的情况下工作
- While循环在JavaScript中永远运行
- 逻辑(JSint友好)等效于while循环中的此赋值
- Javascript:用if语句运行while循环,用子句随机生成内容
- 如何使javascript在SQL while循环中回显所有数据
- 使用ajax循环while中的多个表单
- JavaScript 中的无限循环 - while 循环