JavaScript函数返回多个变量:数组vs对象。什么';最佳做法是什么?

JavaScript函数返回多个变量:数组vs对象。什么';最佳做法是什么?,javascript,function,Javascript,Function,我们应该使用数组还是对象从JavaScript函数中获取多个变量?这有关系吗?执行此操作的最佳实践是什么?使用对象可以命名返回值。使用对象可以命名返回值。这完全取决于返回的数据类型。如果您返回的是同一类型的事物的可变列表,因此不需要单独标识,或者如果订单计数,那么您应该将它们放在一个数组中并返回该数组 如果要返回N个不完全相同的对象,则应将它们放入具有属性名称的对象中,然后返回该对象。虽然您也可以在数组中返回这些值,但有一个隐含规则,即数组中的第一项是“x”坐标,数组中的第二项是“y”坐标,然后

我们应该使用数组还是对象从JavaScript函数中获取多个变量?这有关系吗?执行此操作的最佳实践是什么?

使用对象可以命名返回值。

使用对象可以命名返回值。

这完全取决于返回的数据类型。如果您返回的是同一类型的事物的可变列表,因此不需要单独标识,或者如果订单计数,那么您应该将它们放在一个数组中并返回该数组


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

这完全取决于您返回的数据类型。如果您返回的是同一类型的事物的可变列表,因此不需要单独标识,或者如果订单计数,那么您应该将它们放在一个数组中并返回该数组


如果要返回N个不完全相同的对象,则应将它们放入具有属性名称的对象中,然后返回该对象。虽然您也可以在数组中返回这些值,但有一个隐含规则,即数组中的第一项是“x”坐标,数组中的第二项是“y”坐标,然后第三项是“宽度”,依此类推,如果使用具有命名属性的对象(代码实际标识了哪个是哪个),那么代码的自文档化程度要高得多。从长远来看,我认为这更易于维护(特别是对于那些没有编写原始代码的人来说)。

如果顺序计数使用数组,则对象不知道其属性的顺序。请看一下这个问题,它可能会回答您的一些问题:

如果订单计数使用数组,则对象不知道其属性的顺序。请看一下这个问题,它可能会回答您的一些问题:

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

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

[city, temp, forecast] = weatherReport "Berkeley, CA"

如果您愿意使用Coffescript,只需返回一个元组即可

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

[city, temp, forecast] = weatherReport "Berkeley, CA"

以下是经验法则:

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


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

以下是经验法则:

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

如果没有,或者顺序很重要,请使用数组