【问题标题】:Creating a multi-dimensional array using JQuery foreach使用 JQuery foreach 创建多维数组
【发布时间】:2015-03-02 02:35:09
【问题描述】:

我想将 jqgrid 与嵌套子网格一起使用。我通过内容类型为 JSON 的 Ajax 调用从数据库中提取数据。 这就是我的 JSON 结构的外观。我需要从中形成一个数组对象。

records : 

{

contracts[
           {
              contractid: 1,
              contractname: contractname1,
              status: "open",

              contractLines: [                --contractLine1
                 {
                 contractLineid: 11,
                 item name: "contractLine1",
                 description : "abcd",
                  products: [
                   {
                   productid : 21,
                   productname : "product21"
                   },

                   {
                   productid : 22,
                   productname : "product22"
                   }
                   ]
                 },

                 {
                 contractLineid: 12,            contractLine2
                 item name: "contractLine1",
                 description : "abcd",
                  products: [
                   {
                   productid : 23
                   productname : "product23"
                     },      

                   {
                   productid : 24,
                   productname : "product24"
                   } 
                   ]
                 }

              ]

          },

          {
              contractid: 2,
              contractname: contractname2,
              status: "open",

              contractLines: [                --contractLine1
                 {
                 contractLineid: 2,
                 item name: "contractLine21",
                 description : "abcd",
                  products: [
                   {
                   productid : 31,
                   productname : "product31"
                   },

                   {
                   productid : 32,
                   productname : "product32"
                   }
                   ]
                 },

                 {
                 contractLineid: 22,           -- contractLine2
                 item name: "contractLine22",
                 description : "abcd",
                  products: [
                   {
                   productid : 33
                   productname : "product33"
                     },      

                   {
                   productid : 34,
                   productname : "product34"
                   } 
                   ]
                 }

              ]

          }

       ]

}-- records

我将我的 3 层数据绑定到这样的网格列:

            var records = [];
            var records1 = [];
            var records2 = [];
            //============================================================
            // build records of Contracts
            //============================================================
            $.each(contracts, function (index, contract) {
                records[index] = {};
                records[index]['contractid'] = contract.ID;
                records[index]['description'] = contract.Description;
                records[index]['status'] = contract.Status.Value;
                records[index]['classification'] = contract.Classification;
                records[index]['startdate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateStart);
                records[index]['enddate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateEnd);
                records[index]['canceldate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateCancel);


                //============================================================
                // build records of Contract Lines
                //============================================================
                $.each(contract.ContractLines, function (index2, contractLine) {

                    records1[index2] = {};
                    records1[index2]['contractlineid'] = contractLine.ID;
                    records1[index2]['itemname'] = contractLine.ItemName;
                    records1[index2]['startdate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateStart);
                    records1[index2]['enddate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateEnd);
                    records1[index2]['canceldate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateCancel);
                    records1[index2]['vendorname'] = contractLine.Vendor.Name;
                    records1[index2]['description'] = contractLine.Description;
                    records1[index2]['isshipped'] = contractLine.IsShipped;


                    //============================================================
                    // build records of Products
                    //============================================================
                    $.each(contractLine.Products, function (index3, product) {

                        records2[index3] = {};
                        records2[index3]['productid'] = product.ID;
                        records2[index3]['name'] = product.Name;
                        records2[index3]['description'] = product.Description;

                    });



                });



            });

【问题讨论】:

    标签: jquery multidimensional-array


    【解决方案1】:

    来自$.getJSON

    $.getJSON( "ajax/test.json", function( data ) {
      var items = [];
      $.each( data, function( key, val ) {
        items.push( "<li id='" + key + "'>" + val + "</li>" );
      });
    
      $( "<ul/>", {
        "class": "my-new-list",
        html: items.join( "" )
      }).appendTo( "body" );
    });
    

    【讨论】:

    • 我以这种方式将数据绑定到我的网格列,将它们存储在 3 个数组中(如上所示)。但需要我需要从这些中形成 1 个单个数组对象。或者不是存储在 3 个数组中,我们可以存储在 1 个数组中吗?
    猜你喜欢
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多