0

この配列データのセットをXMLHttpRequestresponseXMLオブジェクトから取得しました。解析中に、使用するために渡される配列をフォーマットしたいと思います。

配列setupは次のようになります

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

そのため、最初にセットアップを配列に入れてから、すべてのセットアップについて、別のセットアップを連結しようとしています。

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;
}

これは空を返します、私はめちゃくちゃだと思います。誰かが私にこれを行うためのよりエレガントな方法を教えてもらえますか?

4

1 に答える 1

1

どうですか:

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

なぜこのようにしたいのか正確にはわかりませんが、提供した要件を満たしている必要があります。

そうしないと、オブジェクトを配列に保持する方が、「3つのグループ」を保持する必要があるよりも、将来的に作業するのが少し簡単になる可能性があります。IE:

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

setup[3].eDay...これにより、たとえば、を参照できるようになります。

于 2013-02-24T06:15:58.030 に答える