将多个数据项存储到javascript对象中?
在我的程序中,我必须提示用户输入客户信息。 这些信息包括将多个数据项存储到javascript对象中?,javascript,arrays,Javascript,Arrays,在我的程序中,我必须提示用户输入客户信息。 这些信息包括名、姓、电话号码、和杂货项目(每个数组用逗号分隔) 提示会一直向用户询问信息,直到用户按“取消”或不输入任何内容。 例: 每次用户输入信息时,我都需要创建一个对象来存储信息,每个对象都需要一个属性项。所以我想是这样的 cust = prompt("enter customer info"); while(cust != null){ var array1 = cust.split(','); var customer = {
名
、姓
、电话号码
、和杂货项目
(每个数组用逗号分隔)
提示会一直向用户询问信息,直到用户按“取消”或不输入任何内容。
例:
每次用户输入信息时,我都需要创建一个对象来存储信息,每个对象都需要一个属性项。所以我想是这样的
cust = prompt("enter customer info");
while(cust != null){
var array1 = cust.split(',');
var customer = {
custinfo:array1.slice(0,3),
items:array1.slice(3,array1.length)
}
cust = prompt("enter");
}
这适用于第一个客户,但如何存储许多条目,我不知道用户将输入多少客户。我尝试创建一个对象数组,如果这有意义的话,比如
customer[]
,但没有成功。我将它们拆分为数组,以便以后在家庭作业中使用。另外,如何运行提示直到用户不输入任何内容?如果您想要一个有序的项目列表,请使用。您可以将其与for
循环结合使用。这里有一个例子
function ask_questions(questions) {
var answers = [],
i,
ans;
for (i = 0; i < questions.length; ++i) { // for infinite loop, `while (true) {`
ans = prompt(questions[i] || 'enter'); // default question
if (!ans) break; // cancel or blank ends questioning
answers[i] = ans; // do what you want with the data given
}
return answers;
}
然而,这真的是最适合您的数据结构吗?对于具有有用属性名称而不是索引的对象,您可能会做得更好,并要求它们提供特定的数据片段,例如它们的名称和地址,而不是让它们自己决定。如果你把一切都交给他们,你可能会得到他们宠物的生活故事和他们最喜欢的颜色等等,甚至什么都没有 最后,
prompt
不是一个好的用户体验,在您的最终修订版中使用
或
s“我尝试创建一个对象数组,如果这有意义的话,比如customer[],但它不起作用。”请向我们展示您的尝试。在之后使用数组不应该有任何问题。
function ask_questions(questions) {
var answers = [],
i,
ans;
for (i = 0; i < questions.length; ++i) { // for infinite loop, `while (true) {`
ans = prompt(questions[i] || 'enter'); // default question
if (!ans) break; // cancel or blank ends questioning
answers[i] = ans; // do what you want with the data given
}
return answers;
}
var qs = ['enter customer info', null, 'enter2']; // null will cause message "enter"
qs.length = 4; // undefined will cause message "enter"
ask_questions(qs); // ["foo", "bar", "baz", "fizz"]