Javascript 如何合并数组然后合并它们
我从XMLHttpRequest-responseXML对象检索了这组数组数据。在解析过程中,我想格式化一个要传回使用的数组 数组Javascript 如何合并数组然后合并它们,javascript,xml,arrays,merge,xmlhttprequest,Javascript,Xml,Arrays,Merge,Xmlhttprequest,我从XMLHttpRequest-responseXML对象检索了这组数组数据。在解析过程中,我想格式化一个要传回使用的数组 数组设置应如下所示 setup=['eMonth[0],'eDay[0],'holiStr[0],'eMonth[1],'eDay[1],'holiStr[1]' ,'eMonth[2],'eDay[2],'holiStr[2]。] 因此,我尝试先将设置放入一个数组中,然后针对每个设置,在另一个设置中进行设置 function parseXML(xmlData){ var
设置应如下所示
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;
}
函数解析xml(xmlData){
var设置;
对于(i=0;i'+eHour[i]+':“+eMinute[i];
设置=[eMonth[i]、eDay[i]、holiStr[i];
}
返回设置;
}
这是空的,我想我搞砸了。有人能给我介绍一种更优雅的方法吗?怎么样:
var setup = [];
for(...){
...
setup.push(eMonth[i]);
setup.push(eDay[i]);
setup.push(holiStr[i]);
}
return setup;
我不确定你为什么要这样做,但它应该满足你提供的要求
否则,将对象保留在数组中可能会更容易处理,而不需要保留“3的分组”。即:
。。。这将允许您引用设置[3]。例如,eDay
。您不需要使用concat()?最想知道的是如何将同一个索引与每个索引合并并分组other@GivenPie-concat
用于将现有阵列组合在一起。例如,concat([1,2,3],[4,5,6])
。在您演示的任何地方都没有这样的设置。相反,您只是在使用一次性属性扩展现有阵列。如果您觉得有必要,我可以提供一种使用concat的方法,但我看不出它有什么真正的好处。我需要concat的数组,以便我可以用来填充日历。日历上的特定日期的索引由(月、日、假日)@GivenPie定义-我认为您需要发布更多的代码,因为现在不清楚您到底想做什么。但是,我仍然不认为需要concat
。也就是说,如果您的最终目标只是这些三元组的一个数组,那么我提供的代码正是您所需要的。如果您需要合并对parseXML
的调用,那么只需将setup
向上移动到作用域中(函数外部),或者将其传递到函数中并继续使用push
,如我所示。我明白了,那么我现在就理解push,所以我将利用它。我相信它现在能做我需要的事情。
var setup = [];
for(...){
...
setup.push({eMonth: eMonth[i], eDay: eDay[i], holiStr: holiStr[i]});
}
return setup;