带开关的Javascript查询
我是javascript新手,试图完成让用户与简单联系人数组交互的简单任务,我正在努力找到正确的语法来循环选择变量,直到用户输入0退出,我已经尝试了一段时间的循环,但只是不确定我应该把循环放在哪里,建议将不胜感激带开关的Javascript查询,javascript,Javascript,我是javascript新手,试图完成让用户与简单联系人数组交互的简单任务,我正在努力找到正确的语法来循环选择变量,直到用户输入0退出,我已经尝试了一段时间的循环,但只是不确定我应该把循环放在哪里,建议将不胜感激 var Contact = { //Initialise the contact init: function(firstName, lastName) { this.firstName = firstName; this.lastNam
var Contact = {
//Initialise the contact
init: function(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
},
//Display the contact details
describe: function() {
var description = "Last name : " + this.lastName + ", first name: " + this.firstName;
return description
}
};
var contact1 = Object.create(Contact);
contact1.init("John", "Smith");
var contact2 = Object.create(Contact);
contact2.init("Jane", "Doe");
var contacts = [];
contacts.push(contact1);
contacts.push(contact2);
console.log("Welcome to your contacts manager!");
console.log("1: List contacts");
console.log("2: Add a contact");
console.log("0: Quit");
var choice = "";
choice = prompt("Enter 1, 2 or 0");
//while (choice !== "0") {
switch (choice) {
case "1":
console.log("Here's the list of all your contacts:");
contacts.forEach(function (contact) {
console.log(contact.describe());
});
console.log("1: List contacts");
console.log("2: Add a contact");
console.log("0: Quit");
break;
case "2":
contacts.push(prompt("Enter new name: "));
console.log("Contact added");
console.log("1: List contacts");
console.log("2: Add a contact");
console.log("0: Quit");
break;
case "0":
console.log("Goodbye");
console.log("1: List contacts");
console.log("2: Add a contact");
console.log("0: Quit");
break;
default:
console.log("Invalid Entry");
console.log("1: List contacts");
console.log("2: Add a contact");
console.log("0: Quit");
break;
}
在开关情况下,您正在检查字符串“0”。用例0:或将输入转换为字符串并将数据传递给switch。您希望用户输入多个内容,因此可以在循环中输入提示:
var choice = "";
while (choice !== "0") {
choice = prompt("Enter 1, 2 or 0");
switch(choice){
//...
}
}
请查看更新的while循环
var触点={
//初始化联系人
init:函数(firstName,lastName){
this.firstName=firstName;
this.lastName=lastName;
},
//显示联系人详细信息
描述:函数(){
var description=“Last name:”+this.lastName+”,first name:“+this.firstName;
返回说明
}
};
var contact1=Object.create(Contact);
联系人1.init(“约翰”、“史密斯”);
var contact2=对象。创建(联系人);
联系人2.初始(“简”、“Doe”);
var触点=[];
触点。按下(触点1);
触点。按下(触点2);
log(“欢迎使用您的联系人管理器!”);
console.log(“1:列出联系人”);
console.log(“2:添加联系人”);
console.log(“0:退出”);
var选择=”;
while(选项!=“0”){
选项=提示(“输入1、2或0”);
开关(选择){
案例“1”:
log(“这是您所有联系人的列表:”;
contacts.forEach(功能(contact){
console.log(contact.descripe());
});
console.log(“1:列出联系人”);
console.log(“2:添加联系人”);
console.log(“0:退出”);
打破
案例“2”:
contacts.push(提示(“输入新名称”);
控制台日志(“添加联系人”);
console.log(“1:列出联系人”);
console.log(“2:添加联系人”);
console.log(“0:退出”);
打破
案例“0”:
console.log(“再见”);
console.log(“1:列出联系人”);
console.log(“2:添加联系人”);
console.log(“0:退出”);
打破
违约:
控制台日志(“无效条目”);
console.log(“1:列出联系人”);
console.log(“2:添加联系人”);
console.log(“0:退出”);
打破
}
}
输入为字符串格式<代码>:)ps:不是我的否决票。我可以问你一个关于while循环的问题吗,第一次时一切都很好,但是如果我使用push添加一个联系人,然后尝试列出数组,它失败了,因为它说联系人。description不再是一个函数了?是的,所以它在你的代码中,您尝试初始化2个值,在输入中,您将名称作为单个值,没有问题我已更新了您的代码,请立即尝试。请查看更新的部分。