【问题标题】:How to pass an array to another function in Javascript?如何将数组传递给Javascript中的另一个函数?
【发布时间】:2024-01-21 05:46:01
【问题描述】:

我不确定如何将此数组foo 传递给我需要它的另一个函数。这是我的设置:

if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) 
            {
                var xmlResponse = XMLHttpRequestObject.responseXML;
                var foo = parseXML(xmlResponse);
                dataOutput.innerHTML += foo;
            }

foo = (2,4,Party---12:00,2,22,Eventalist Launch---6:00,2,18,Play Day---12:00)

JSON = ["2","4","Party---12:00","2","22","Eventalist Launch---6:00","2","18","Play Day---12:00"]

所以我需要将此数组传递给 HolidayName 变量。

function getHoliday(monthSelected,theday)
{
    monthSelected = monthSelected + 1
    var holiday = ""
    var HolidayName = "NEEDS TO BE foo"
}

我不确定是否可以在不更改 getHoliday 参数的情况下移动此数组。这是因为这个函数也在其他地方被调用,我不能混淆不同的参数。有没有办法构建一个“get”函数来获取我的数组 foo?

【问题讨论】:

  • 您可以运行JSON.stringify(foo) 并在此处发布输出吗?

标签: javascript arrays function get


【解决方案1】:

如果您不想更改 getHoliday(), 的参数,则创建另一个接收所有 3 个参数的函数,将其中两个传递给 getHoliday() 的调用,然后处理数组。

function getHolidayWithArray(monthSelected, theday, fooArray) {

    getHoliday(monthSelected, theday);  // invoke getHoliday

    // work with fooArray
}

【讨论】:

    【解决方案2】:

    向 getHoliday 添加额外的参数不会影响调用它的其他函数。

    因此,您可以向getHoliday 添加一个附加参数并使用一些条件逻辑为其设置默认值,或者如果它是undefined 则忽略它,或者在window 上设置foo

    【讨论】:

      【解决方案3】:

      您可以将参数添加到getHoliday 函数的末尾,如下所示:

      function getHoliday(monthSelected, theday, foo) {
          //...
      }
      

      仅使用两个参数调用的任何东西都将继续运行,foo 将是 undefined。因此,您可能需要检查并在这种情况下将 holidayName 设为默认值,例如:

      var holidayName = foo || "Some default";
      

      【讨论】:

        最近更新 更多