2013-07-04 102 views
0

我有對象的數組某些信息,我想從得到的值:通過javascript對象迭代並輸出基於標準

lastChanceSeats: Object 
     assignedSeats: Array[6] 
     0: Object 
      SeatId: "29A" 
      passengerName: "Mr test1 test1" 
      sectorSequence: 1 
     1: Object 
      SeatId: "22A" 
      passengerName: "Mr test1 test1" 
      sectorSequence: 2 
     2: Object 
      SeatId: "29B" 
      passengerName: "Mrs test2 test2" 
      sectorSequence: 1 
     3: Object 
      SeatId: "22B" 
      passengerName: "Mrs test2 test2" 
      sectorSequence: 2 
     4: Object 
      SeatId: "29C" 
      passengerName: "Master test3 test3" 
      sectorSequence: 1 
     5: Object 
      SeatId: "22C" 
      passengerName: "Master test3 test3" 
      sectorSequence: 2 

我想以下列格式呈現數據:

  • 首先{passengerName}
  • {sectorSequence:1} + {SeatId}
  • {sectorSequence:2} + {SeatId}

...那麼同爲乘客二,三等等。

+0

你應該使用'html'來實現這一目標。 – 2013-07-04 10:10:24

+0

你好,對不起,我以後ID通過陣列如何遍歷拉在呈現方式中的數據是。 – user2006815

+0

檢查我的答案 – 2013-07-04 11:21:11

回答

0

使用一個簡單的模板和循環儘管每個項目產生的輸出:在對象屬性

var data=[ 
    { 
     "SeatId": "29A", 
     "passengerName": "Mr test1 test1", 
     "sectorSequence": 1 
    }, 
    { 
     "SeatId": "22A", 
     "passengerName": "Mr test1 test1", 
     "sectorSequence": 2 
    }, 
    { 
     "SeatId": "29B", 
     "passengerName": "Mrs test2 test2", 
     "sectorSequence": 1 
    } 
] 


function template(ob, str){ 
    return str.replace(/{([\w\s.\$]+?)}/g, 
    function(j,a){ return ob[a]||""; }); 
} 

strTemplate="First {passengerName} {sectorSequence} + {SeatId}"; 

out=$(data).map(function(i,item){ return template(item, strTemplate)}).toArray().join("\n"); 

alert(out); 

/* result: 
First Mr test1 test1 1 + 29A 
First Mr test1 test1 2 + 22A 
First Mrs test2 test2 1 + 29B */ 
0

有序的迭代是不可能的。

你可以做這樣的事情:

var data=[ 
    { 
     "SeatId": "29A", 
     "passengerName": "Mr test1 test1", 
     "sectorSequence": 1 
    }, 
    { 
     "SeatId": "22A", 
     "passengerName": "Mr test1 test1", 
     "sectorSequence": 2 
    }, 
    { 
     "SeatId": "29B", 
     "passengerName": "Mrs test2 test2", 
     "sectorSequence": 1 
    } 
], 
orderedObjectProps = ['SeatId', 'passengerName', 'sectorSequence'], 
dataLength = data.length, 
propsLength = orderedObjectProps.length, 
i = 0; 

for(i; i < dataLength; i++) { 
    var obj = data[i], 
    j = 0; 
    for(j; j < propsLength; j++) { 
    var propName = orderedObjectProps[j], 
    propValue = obj[propName]; 
    console.log(propValue); 
    } 
} 

上面的代碼將在你想要的順序打印值。

+0

感謝上述但是我試圖讓第一乘客的姓名和列出他們定座位數下,然後第二個乘客的名字和他們的座位號等,而不是重新排序的屬性。我需要看看每個對象,評估它們中的任何一個名稱是否相同,並列出下面的適用座位......是否有意義?!? – user2006815