我希望用户插入一些关于他自己的数据,将用户的输入推入我的数组以供进一步使用。我可以将数据推入数组并使其成为多维的吗?如何将空数组转换为多维数组?这是我的http://jsfiddle.net/arminemash/r1pfwwe4/114/。提前感谢
<script>
var dataBaze=[];
function myFunction(){
alert('hello');
$("button").click( inputData());
};
function inputData(){
do{
var input=prompt("Enter user's name,surname,telephone number,Email keeping the order and separating words by a comma"," ");
dataBaze.push(input);
var ok=confirm("continue?");
}
while(ok==true);
}
</script>
首先,由于您从逗号分隔的提示符中获取数据,因此需要拆分字符串以使其成为数组。
var infos = prompt("Enter user's name,surname,telephone number,Email keeping the order and separating words by a comma"," ")
var infosArray = infos.split(',');
dataBaze.push(infosArray);
split方法允许您使用传递给函数的分隔符将字符串分割成块。因此,".split(',')"查找逗号的每个实例,并将其前面的内容放入数组中。解析完整字符串后,返回完整数组。
从那里开始,数组的每个单元格将包含其子单元格中的所有信息(database[0]可能包含类似
的内容) ['MyName', 'MySurname', '555-555-5555', 'myemail@email]
假设你想要名字你可以用" database[0][0]"等等
但是,有几种方法可以使内容更易于阅读和维护,例如向数组中插入对象,如下所示:var user = {name:'', surname:'', telephone:'', email:''};
user.name = infosArray[0];
user.surname = infosArray[1];
user.telephone = infosArray[2];
user.email = infosArray[3];
dataBaze.push(user);
然后您可以访问如下信息:
document.write("My name is " + dataBaze[0].name + ", and my surname is " + dataBaze[0].surname + ". You can call me at " + dataBaze[0].telephone + " or contact me by email at " + dataBaze[0].email +". Thanks!");
我们在这里所做的是创建一个对象({}),它基本上是一个键数组(它更多,但让我们不要无缘无故地深入)。因此,当您稍后返回代码时,您不必每次都猜测哪个单元格是什么。
编辑:我只是觉得我应该添加一些解释的什么和为什么。
就像Xufox说的那样,使用函数名来调用它:
$("button").click(inputData);
当你把数据压入数组时,像这样压入:
var input = prompt("Enter user's name,surname,telephone number,Email keeping the order and separating words by a comma", " ").split(",");
dataBaze.push({
"name":input[0],
"surname":input[1],
"telephone":input[2],
"email":input[3]
});
因此,您将得到您所希望的多维数组。这里是jsFiddle
就像ste2425说的,你可以用form,
var dataBaze = [];
$("#submit").click(function(){
dataBaze.push({
"name": $("#name").val(),
"surname":$("#surname").val(),
"telephone":$("#phone").val(),
"email":$("#email").val(),
});
console.log(dataBaze)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
Enter name: <input type="text" id="name"><br/>
Enter Surname: <input type="text" id="surname"><br/>
Enter Telephone: <input type="text" id="phone"><br/>
Enter Email: <input type="text" id="email"><br/>
<button id="submit">submit</button><br/>
</form>
希望它能起作用
我猜你想创建这样的东西:
function inputData(){
var counter = 0;
do{
var input=prompt("Enter user's name,surname,telephone number,Email keeping the order and separating words by a comma"," ");
elements = input.split(",");
dataBaze[counter] = new Array(5);
for (var j = 0; j < 5; j++) {
dataBaze[counter][j]= elements[j];
}
counter++;
var ok=confirm("continue?");
}
while(ok==true);
//alert is for checking;
alert(dataBaze);
}
你可以这样简化:
var elements = infos.split(',');
dataBaze.push(infosArray);