簡體   English   中英

在 js 中推送數組看起來無法正常工作

[英]Pushing an array in js doesn't look to work properly

 $Flight = array
            (
            '1' => array
                (
                '5' => array
                    (
                    'LFID' => '6684',
                    'DepartureDate' => '2012-10-22T12:30:00',
                    'ArrivalDate' => '2012-10-22T14:00:00',
                    'BaseFareAmtInclTax' => '343.50',
                    'ReturnFlightSegmentDetails' =>
                    array
                        (
                        '87' => array
                            (
                            'LFID' => '6647',
                            'DepartureDate' => '2012-10-24T12:25:00',
                            'FareTypeName' => 'Change',
                            'FareTypeID' => '22',
                            'BaseFareAmtInclTax' => '198',
                        )
                    )
                ),
                '10' => array
                    (
                    'LFID' => '6684',
                    'DepartureDate' => '2012-10-23T12:30:00',
                    'ArrivalDate' => '2012-10-23T14:00:00',
                    'BaseFareAmtInclTax' => '243.50',
                    'ReturnFlightSegmentDetails' =>
                    array
                        (
                        '150' => array
                            (
                            'LFID' => '6647',
                            'DepartureDate' => '2012-10-24T12:25:00',
                            'FareTypeName' => 'Change',
                            'FareTypeID' => '22',
                            'BaseFareAmtInclTax' => '198',
                        ),
                        '153' => Array
                            (
                            'LFID' => '6647',
                            'DepartureDate' => '2012-10-26T12:25:00',
                            'FareTypeName' => 'Change',
                            'FareTypeID' => '22',
                            'BaseFareAmtInclTax' => '198',
                        )
                    )
                )
            ),
        );

我的控制器中有這個數組,它被傳遞給我的樹枝,在那里我執行以下代碼將其解析為一個 js 數組:

{% for flight in flights%}
                   var $FlightSegment = new Array();
                  $flight.push({
                        key:"{{ flight.key }}",
                        DepartureDate:"{{flight.DepartureDate}}",
                        ArrivalDate:"{{flight.ArrivalDate}}",
                        Amount:"{{flight.BaseFareAmtInclTax}}",
                        
                     });
                     {% for ReturnFlightSegmentDetails in flight.ReturnFlightSegmentDetails %}
                          $FlightSegment.push({
                                LFID :"{{ReturnFlightSegmentDetails.LFID}}", 
                                DepartureDate:"{{ReturnFlightSegmentDetails.DepartureDate}}",
                                ArrivalDate:"{{ReturnFlightSegmentDetails.BaseFareAmtInclTax}}",
                                Class:"{{ReturnFlightSegmentDetails.FareTypeName}}",
                           });
                      {% endfor %}
                      console.info($FlightSegment);
                    $flight.push({
                        ReturnFlightSegmentDetails :$FlightSegment,
                    });
                {% endfor %} 

問題是 $flight.length 返回 4 而不是 2,ReturnFlightSegmentDetails 被認為是一個對象,而不是航班的屬性。

您需要以不同的方式構建“飛行”對象; 真的不需要“$FlightSegment”變量。

{% for flight in flights%}
    $flight.push({
        key: "{{ flight.key }}",
        DepartureDate: "{{flight.DepartureDate}}",
        ArrivalDate: "{{flight.ArrivalDate}}",
        Amount: "{{flight.BaseFareAmtInclTax}}",
        ReturnFlighSegmentDetails: [
           {% for ReturnFlightSegmentDetails in flight.ReturnFlightSegmentDetails %}
             {
                LFID :"{{ReturnFlightSegmentDetails.LFID}}", 
                DepartureDate:"{{ReturnFlightSegmentDetails.DepartureDate}}",
                ArrivalDate:"{{ReturnFlightSegmentDetails.BaseFareAmtInclTax}}",
                Class:"{{ReturnFlightSegmentDetails.FareTypeName}}"
              }
               {% if not loop.last } , {% endif }
           {% endfor %}
        ]
       });
 {% endfor %} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM