如何合并数组然后连接它们

时间:2013-02-24 06:09:41

标签: javascript xml arrays merge xmlhttprequest

我从XMLHttpRequest responseXML对象中检索了这组数组数据。在解析期间,我想格式化一个要传回的数组以供使用。

数组setup应该像这样

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

所以我试图先将setup设置为一个数组然后进行每次设置,然后再进行另一次设置。

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 个答案:

答案 0 :(得分:1)

怎么样:

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

我不确定你为什么要这样做,但它应该符合你提供的要求。

否则,保持数组中的对象可能会更容易在路上工作,而不需要保持“3的分组”。即:

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

...例如,这将允许您引用setup[3].eDay