如何将数据添加到空数组中,使其在JavaScript中成为多维的



我希望用户插入一些关于他自己的数据,将用户的输入推入我的数组以供进一步使用。我可以将数据推入数组并使其成为多维的吗?如何将空数组转换为多维数组?这是我的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);

相关内容

  • 没有找到相关文章

最新更新