如何在Javascript中生成数组数组?
因此:如何在Javascript中生成数组数组?,javascript,arrays,Javascript,Arrays,因此: var person = {name: "", address: "", phonenumber: ""} 我想创建一个循环来接收用户输入(直到他们决定不再输入任何信息,不输入任何内容或单击“取消”)。我还想使用person对象作为原型 所以我猜一个对象只是为了存储任意数量的人的姓名/地址/电话号码。我的逻辑是为循环的每次迭代动态地向对象添加整个数组。我的代码如下所示: var person = {name: "", address: "", phonenumber: ""} var
var person = {name: "", address: "", phonenumber: ""}
我想创建一个循环来接收用户输入(直到他们决定不再输入任何信息,不输入任何内容或单击“取消”)。我还想使用person对象作为原型
所以我猜一个对象只是为了存储任意数量的人的姓名/地址/电话号码。我的逻辑是为循环的每次迭代动态地向对象添加整个数组。我的代码如下所示:
var person = {name: "", address: "", phonenumber: ""}
var customer = []; //used to store each person
var input = "x";
//loop prompting user to input name/address/phone number
for(var i = 0; input != ""; i++){
var input = prompt("Input separated by commas");
//example input: mike, main, 123456789
var results = input.split(", "); //create an array from the input
//move input into the person array.
//person to look like {name = "mike", address = "main", phone = "123456789"}
person.name = results.shift();
person.address = results.shift();
person.phone = results;
customer[i] = person;//store the person array into the customer array.
}
customer =
[{name, address, phone},
{name, address, phone},
{name, address, phone}]
我一直在尝试动态生成如下内容:
var person = {name: "", address: "", phonenumber: ""}
var customer = []; //used to store each person
var input = "x";
//loop prompting user to input name/address/phone number
for(var i = 0; input != ""; i++){
var input = prompt("Input separated by commas");
//example input: mike, main, 123456789
var results = input.split(", "); //create an array from the input
//move input into the person array.
//person to look like {name = "mike", address = "main", phone = "123456789"}
person.name = results.shift();
person.address = results.shift();
person.phone = results;
customer[i] = person;//store the person array into the customer array.
}
customer =
[{name, address, phone},
{name, address, phone},
{name, address, phone}]
然后可以访问并打印它。我一直在尝试使用
console.log(customer[0].phone);
不幸的是,我得到了一个错误
很抱歉出现错误,console.log未打印任何内容,因此似乎客户[0]手机中未存储任何内容
我无法访问提示用户输入并保存在变量中的任何数据。当我使用警报功能时,我得到的只是一个空白框。每当我试图打印customer时,我都会收到消息[object]或类似的信息
var customer = [];//create array
var person = {};// create object
var input = prompt("...");//your prompt
var results = input.split(", "); //create an array from the input
person.name = results[0];//add result with 0 index
person.address = results[1];//add result with 1 index
person.phone = results[2];//add result with index 2
customer[0] = person;//add the person object to the array.
上面的代码应该按照您的意愿执行。我很难理解为什么要对同一个用户重复提示??所以先试试这个,然后继续
不要用提示框来诱导用户,使用表单。也不要迭代类似的东西,for循环中的条件基本上会创建一个无限循环,这也是不好的
我的代码可以更好,比如if条件,以及如何在表单中使用它。尽管坦率地说,你似乎还远远没有做到这一点。因此,我已经开始了,尝试一下,看看你是否能以你想要的方式实现这一点,然后提出建议,帮助你做其他事情
var customer = []; //used to store each person
var input = "x";
//loop prompting user to input name/address/phone number
for(var i = 0; input != ""; i++){
var input = prompt("Input separated by commas");
//example input: mike, main, 123456789
var results = input.split(", "); //create an array from the input
var person = {};
person.name = results.shift();
person.address = results.shift();
person.phone = results;
customer[i] = person;//store the person array into the customer array.
}
请告诉我,这个“错误”是什么?关于
console.log(客户)
?另外,您可以只使用customer.push(person)
,这样感觉更“一致”,而不必担心索引。您的代码不会生成您想要的内容,但也不会生成错误,就像您声称的那样:。请解释代码的真正问题是什么。你真正的问题是什么?您似乎已经知道如何将元素添加到数组中。请查看这是否有帮助:首先,如果单击“取消”按钮,它将显示错误,因为var input=prompt(“以逗号分隔的输入”);将输入设置为null,然后使用input.split()将导致错误。如果您单击Ok按钮,我认为您应该通过警报(customer.length)检查客户的长度;或者使用F12并观察客户变量内部。我不会为任何人制作此网页。我只是在学习如何做JS,所以我一直在使用scratchpad。我猜你可以说它几乎就像一个数据库。输入客户信息,然后可以随意访问元素。因此,我对同一个用户重复提示,因为您正在输入每个客户的数据!(想象一家商店询问您的信息)使用提示符进行迭代仍然是个坏主意。正如其他人所说,如果我们单击“取消”,它是未定义的。如果我们写hello,那么我们没有多个数组。因此,您的代码将始终失败。您最好的选择是使用虚拟表单。每次单击submit
add都会显示该信息。尽管使用了一些条件语句来检查输入,但我仍然没有条件来检查!=“
,因为如果它是,它仍然有效。”
所以如果OP要重复这个,亲爱的上帝,我希望他不会,我会使用正则表达式清除所有空白,然后检查它。以及在循环中检查数组长度是否是OP所需的数量。我编辑了代码,因为它没有打印值,因为之前所有值都由于最后一次输入而变为null。@EasyBB oh。我不太担心糟糕的输入。这是一个实践程序,所以我不需要太多的用户验证