【问题标题】:JavaScript function returning multiple variable: Array vs Object. What's the best practice?返回多个变量的 JavaScript 函数:数组与对象。最佳做法是什么?
【发布时间】:2012-08-16 20:16:18
【问题描述】:

我们应该使用数组还是对象从 JavaScript 函数中获取多个变量?这还重要吗?这样做的最佳做法是什么?

【问题讨论】:

    标签: javascript function


    【解决方案1】:

    这完全取决于您返回的数据类型。如果您要返回一个变量列表,其中包含所有相同类型的事物,因此不需要单独标识,或者如果订单很重要,那么您应该将它们放入一个数组并返回该数组。

    如果您要返回 N 个不完全相同的东西,那么您应该将它们放在具有属性名称的对象中并返回该对象。虽然您也可以在数组中返回这些,并且只有一个隐含规则,即数组中的第一项是“x”坐标,数组中的第二项是“y”坐标,然后第三项是“宽度”依此类推,如果您使用具有命名属性的对象,代码实际标识哪个是哪个,则您的代码会更加自我记录。从长远来看,我认为这更易于维护(尤其是那些没有编写原始代码的人)。

    【讨论】:

      【解决方案2】:

      使用一个对象来命名你的返回值。

      【讨论】:

        【解决方案3】:

        如果订单计数使用数组,则对象不知道其属性的顺序。请看看这个问题,它可能会回答你的一些问题:Objects vs arrays in Javascript for key/value pairs

        【讨论】:

          【解决方案4】:

          如果你愿意使用 Coffescript,你可以只返回一个元组。

          weatherReport = (location) ->
            # Make an Ajax request to fetch the weather...
            [location, 72, "Mostly Sunny"]
          
          [city, temp, forecast] = weatherReport "Berkeley, CA"
          

          【讨论】:

            【解决方案5】:

            这是经验法则:

            如果您需要不是0...N 的字符串索引或数字索引,请使用对象。

            如果不这样做,或者如果顺序很重要,请使用数组。

            【讨论】:

              猜你喜欢
              • 2010-09-07
              • 1970-01-01
              • 2012-10-23
              • 1970-01-01
              • 2019-07-16
              • 1970-01-01
              • 1970-01-01
              • 2013-09-20
              相关资源
              最近更新 更多