Javascript 拆分数组

Javascript 拆分数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有两个javascript函数,第一个在工作,第二个在工作,但没有在隐藏的输入中回显正确的值 我成功地获得了最后一个隐藏的输入值,但我不知道如何正确 var customTicketsArr = Array(); function EditEventAddTicket(){ alertWrongTime = false; var TicketName = jQuery("#ticketname").val(); var TicketPrice = jQuery("#t

我有两个javascript函数,第一个在工作,第二个在工作,但没有在隐藏的输入中回显正确的值

我成功地获得了最后一个隐藏的输入值,但我不知道如何正确

var customTicketsArr = Array();

function EditEventAddTicket(){
    alertWrongTime = false;
    var TicketName = jQuery("#ticketname").val();
    var TicketPrice = jQuery("#ticketprice").val();
    var ticketquantity = jQuery("#ticketquantity").val();

    var storeString = "TicketName" + TicketName + "TicketPrice" + TicketPrice + "Quantity" + ticketquantity + '';
    customTicketsArr.push(storeString);
    EditEventUpdateTickets(true);
}


function EditEventUpdateTickets(fade){
   jQuery("#custom_tickets_string").val(customTicketsArr);
   var output = "";
   var style = "";
   for (i = customTicketsArr.length-1; i >= 0; i--){
       ticketname = customTicketsArr[i].split("TicketName");

           ticketprice = customTicketsArr[i].split("TicketPrice");

           ticketquantity = customTicketsArr[i].split("Quantity");
       if(fade){
           if (customTicketsArr.length - 1 == i){
               style = "display: none; ";
               var fadeInDiv = i;
           } else {
               style = "";
           }
       }
       if (i % 2 == 1) { style += "background-color: #660000; "}
       html = "<div id='customticket" + i + "' class='customeventbase' style='" + style + "'>";
       html += '<input type="hidden" name="customTicketid[' + i + '][Name]" id="customticketName' + i + '" value="'+ ticketname  + '" />';
           html += '<input type="hidden" name="customTicketid[' + i + '][Price]" id="customticketPrice' + i + '" value="' +ticketprice[1]  +'" />';
           html += '<input type="hidden" name="customTicketid[' + i + '][Quantity]" id="customticketQuantity' + i + '" value="'+ ticketquantity[1]  +'" />';

       html += '<button class="customeventdel" type="button"  onClick="EditEventRemoveDate(' + i + ')"></button>';
       html += '<div class="clear"></div>';
       html += '</div>\n';

       output += html;
   }
   output += "<input type='hidden' id='custom_ticket_info' name='custom_ticket_info' value='" + customTicketsArr + "' />";
   jQuery("#custom_ticket_container").html(output);
   if(fade){
      setTimeout("EditEventfadeInDiv(" + fadeInDiv +")", 10);
   }

}
var customTicketsArr=Array();
函数EditEventAddTicket(){
AlertErrorTime=false;
var TicketName=jQuery(“#TicketName”).val();
var TicketPrice=jQuery(“#TicketPrice”).val();
var ticketquantity=jQuery(“#ticketquantity”).val();
var storeString=“TicketName”+TicketName+“TicketPrice”+TicketPrice+“数量”+ticketquantity+”;
customTicketsArr.push(存储字符串);
EditEventUpdateCkets(真);
}
函数editEventUpdateCkets(淡入淡出){
jQuery(“#custom#u tickets_string”).val(customTicketsArr);
var输出=”;
var style=“”;
对于(i=customTicketsArr.length-1;i>=0;i--){
ticketname=customTicketsArr[i]。拆分(“ticketname”);
ticketprice=customTicketsArr[i]。拆分(“ticketprice”);
ticketquantity=customTicketsArr[i]。拆分(“数量”);
如果(褪色){
if(customTicketsArr.length-1==i){
style=“显示:无;”;
var fadeInDiv=i;
}否则{
style=“”;
}
}
如果(i%2==1){style+=“背景色:#660000;”
html=“”;
html+='';
html+='';
html+='';
html+='';
html+='';
html+='\n';
输出+=html;
}
输出+=“”;
jQuery(“#自定义#票证#容器”).html(输出);
如果(褪色){
设置超时(“EditEventfadeInDiv”(+fadeInDiv+”),10);
}
}
这将产生:

    <div style="background-color: #660000; " class="customeventbase" id="customticket1">
<input type="hidden" value=",testTicketPrice50Quantity44" id="customticketName1" name="customTicketid[1][Name]">
<input type="hidden" value="undefined" id="customticketPrice1" name="customTicketid[1][Price]">
<input type="hidden" value="44" id="customticketQuantity1" name="customTicketid[1][Quantity]">
<button onclick="EditEventRemoveDate(1)" type="button" class="customeventdel"></button>
<div class="clear"></div></div>


前两个隐藏字段的值不正确

它们不是不正确的值-正在执行它应该执行的操作-在移除分隔符后返回子字符串数组

在字符串结构中,在
TicketName
上拆分将得到两个字符串-分隔符前面的子字符串和-
TicketName
后面的子字符串本身不包括在内

因此,对于字符串
“ticketnametticketprice50quantity44”
,当您在
“TicketName”
上拆分时,您将得到
”testTicketPrice50Quantity44”
。在
TicketPrice
上拆分相同的字符串将得到
“TicketNametest”
“50Quantity44”

我建议将对象放入数组中-

var storeObject = {
                    "TicketName" : TicketName,
                    "TicketPrice" : TicketPrice, 
                    "Quantity" : ticketquantity
                  };
customTicketsArr.push(storeObject);
然后,您可以通过以下方式获取数据:

for (i = customTicketsArr.length-1; i >= 0; i--){
    var currentObject = customTicketsArr[i];

    var ticketname = currentObject.TicketName;
    var ticketprice = currentObject.TicketPrice;
    var ticketquantity = currentObject.Quantity;

    //do other stuff here
}

它们并不是不正确的值-正在做它应该做的事情-在移除分隔符后返回一个子字符串数组

在字符串结构中,在
TicketName
上拆分将得到两个字符串-分隔符前面的子字符串和-
TicketName
后面的子字符串本身不包括在内

因此,对于字符串
“ticketnametticketprice50quantity44”
,当您在
“TicketName”
上拆分时,您将得到
”testTicketPrice50Quantity44”
。在
TicketPrice
上拆分相同的字符串将得到
“TicketNametest”
“50Quantity44”

我建议将对象放入数组中-

var storeObject = {
                    "TicketName" : TicketName,
                    "TicketPrice" : TicketPrice, 
                    "Quantity" : ticketquantity
                  };
customTicketsArr.push(storeObject);
然后,您可以通过以下方式获取数据:

for (i = customTicketsArr.length-1; i >= 0; i--){
    var currentObject = customTicketsArr[i];

    var ticketname = currentObject.TicketName;
    var ticketprice = currentObject.TicketPrice;
    var ticketquantity = currentObject.Quantity;

    //do other stuff here
}

为什么要将其保存为字符串?我建议将其存储在对象中:

function EditEventAddTicket(){
    alertWrongTime = false;
    var TicketName = jQuery("#ticketname").val();
    var TicketPrice = jQuery("#ticketprice").val();
    var ticketquantity = jQuery("#ticketquantity").val();

    var ticket = {"TicketName": TicketName, "TicketPrice": TicketPrice, "Quantity": ticketquantity};
    customTicketsArr.push(ticket);
    EditEventUpdateTickets(true);
}
然后您可以简单地加载数据:

for (i = customTicketsArr.length-1; i >= 0; i--){
       ticketname = customTicketsArr[i].TicketName;
       ticketprice = customTicketsArr[i].TicketPrice;
       ticketquantity = customTicketsArr[i].Quantity;

       // ...
}

为什么要将其保存为字符串?我建议将其存储在对象中:

function EditEventAddTicket(){
    alertWrongTime = false;
    var TicketName = jQuery("#ticketname").val();
    var TicketPrice = jQuery("#ticketprice").val();
    var ticketquantity = jQuery("#ticketquantity").val();

    var ticket = {"TicketName": TicketName, "TicketPrice": TicketPrice, "Quantity": ticketquantity};
    customTicketsArr.push(ticket);
    EditEventUpdateTickets(true);
}
然后您可以简单地加载数据:

for (i = customTicketsArr.length-1; i >= 0; i--){
       ticketname = customTicketsArr[i].TicketName;
       ticketprice = customTicketsArr[i].TicketPrice;
       ticketquantity = customTicketsArr[i].Quantity;

       // ...
}

为什么不做一个二维数组呢

var customTicketsArr = Array();

function EditEventAddTicket() {
    customTicketsArr.push({
        'name'  : jQuery("#ticketname").val(),
        'price' : jQuery("#ticketprice").val(),
        'qty'   : jQuery("#ticketquantity").val()
    });
}

为什么不做一个二维数组呢

var customTicketsArr = Array();

function EditEventAddTicket() {
    customTicketsArr.push({
        'name'  : jQuery("#ticketname").val(),
        'price' : jQuery("#ticketprice").val(),
        'qty'   : jQuery("#ticketquantity").val()
    });
}

抛开代码不谈,你能解释一下你想要实现什么吗?抛开代码不谈,你能解释一下你想要实现什么吗?