2013-02-24 52 views
0

我從我的XMLHttpRequest responseXML對象中檢索到這組數據。在分析過程中,我想格式化一個數組以便傳回來使用。如何合併數組然後連接它們

數組setup應該是這樣的

setup=['eMonth[0]','eDay[0]','holiStr[0]','eMonth[1]','eDay[1],'holiStr[1]' ,'eMonth[2]','eDay[2]','holiStr[2]']

所以我試圖把安裝到一個數組,然後先對每個安裝,CONCAT另一個設置。

function parseXML(xmlData){ 
var setup; 
    for(i=0;i< xmlData.getElementsByTagName('year').length;i++){ 
     var eYear = xmlData.getElementsByTagName('year')[i].firstChild.nodeValue; 
     var eMonth = xmlData.getElementsByTagName('month')[i].firstChild.nodeValue; 
     var eDay = xmlData.getElementsByTagName('day')[i].firstChild.nodeValue; 
     var eHour = xmlData.getElementsByTagName('hours')[i].firstChild.nodeValue; 
     var eMinute = xmlData.getElementsByTagName('minutes')[i].firstChild.nodeValue; 
     var eTitle = xmlData.getElementsByTagName('title')[i].firstChild.nodeValue; 
     var holiStr = eTitle[i] + '</br>' + eHour[i] + ":" + eMinute[i]; 
     setup = [eMonth[i],eDay[i],holiStr[i]]; 
    } 
     return setup; 
} 

這將返回空,我想我搞砸了。有人能告訴我一個更優雅的方式來做到這一點嗎?

回答

1

如何:

var setup = []; 
for(...){ 
    ... 
    setup.push(eMonth[i]); 
    setup.push(eDay[i]); 
    setup.push(holiStr[i]); 
} 
return setup; 

我不知道是什麼原因,你會想要做這樣的,但應符合您所提供的要求。否則,將數組中的對象保存在數組中可能會更容易,而不需要保留「3的分組」。 I.E .:

var setup = []; 
for(...){ 
    ... 
    setup.push({eMonth: eMonth[i], eDay: eDay[i], holiStr: holiStr[i]}); 
} 
return setup; 

......例如,這可以讓你參考setup[3].eDay

+0

你不需要使用concat()?最想知道如何連接和分組相同的索引 – GivenPie 2013-02-24 06:22:21

+0

@GivenPie - 'concat'用於將現有的數組組合在一起。 I.E.'concat([1,2,3],[4,5,6])'。在您演示的任何地方,您都沒有像這樣的設置。相反,您只需增加一個具有一次性屬性的現有數組。如果您覺得需要,我可以提供一種使用'concat'的方法,但我認爲它沒有提供任何真正的好處。 – ziesemer 2013-02-24 06:26:59

+0

我需要數組來連接,以便我可以使用填充日曆。日曆上的具體日期有由(月,日,假日)定義的索引 – GivenPie 2013-02-24 06:29:14

相關問題