【问题标题】:How to merge arrays then concat them如何合并数组然后连接它们
【发布时间】:2013-02-24 06:09:40
【问题描述】:

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

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

这返回空,我想我搞砸了。有人可以告诉我一种更优雅的方法吗?

【问题讨论】:

    标签: javascript xml arrays merge xmlhttprequest


    【解决方案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

    【讨论】:

    • 你不需要使用 concat() 吗?最想知道如何将相同的索引相互连接和分组
    • @GivenPie - concat 用于将现有数组组合在一起。即,concat([1, 2, 3], [4, 5, 6])。您在这里演示的任何地方都没有这样的设置。相反,您只是在扩展具有一次性属性的现有数组。如果您觉得有需要,我可以提供一种使用 concat 的方法,但我认为它不会提供任何真正的好处。
    • 我需要将数组连接起来,这样我就可以用来填充日历。日历上的特定日期具有由 (month,day,holiday) 定义的索引
    • @GivenPie - 我认为您需要发布更多代码,因为现在不清楚您到底想要做什么。但是,我仍然认为不需要concat。即,如果您的最终目标只是这些三元组的数组,那么我提供的代码正是您所需要的。如果您需要合并对parseXML 的调用,则只需将setup 在范围内(函数外)向上移动,或将其传递到函数中并继续使用push,如我所演示的。
    • 我明白了,那我现在明白 push 了,所以我会利用它。我确信它可以完成我现在需要的工作。
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2022-01-13
    • 2020-12-05
    • 2021-07-06
    • 2018-06-15
    • 2016-09-23
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多