-1

我有一个从网页返回酒店数量的方法:

hotel_count = self.getHotelsList.values

这个方法的输出是:

[["hotel_0", "hotel_1", "hotel_2", "hotel_3", "hotel_4", "hotel_5", "hotel_6", "hotel_7", "hotel_8", "hotel_9", "hotel_10", "hotel_11", "hotel_12", "hotel_13", "hotel_14", "hotel_15", "hotel_16", "hotel_17", "hotel_18", "hotel_19", "hotel_20", "hotel_21", "hotel_22", "hotel_23", "hotel_24", "hotel_25", "hotel_26", "hotel_27", "hotel_28", "hotel_29", "hotel_30", "hotel_31", "hotel_32", "hotel_33", "hotel_34", "hotel_35", "hotel_36", "hotel_37", "hotel_38", "hotel_39", "hotel_40"]]

我想知道这个数组的长度,但是如果我写

hotel_count = self.getHotelsList.values.length

长度是 1。我怎样才能得到 41 的长度,这是我所期待的?

谢谢

4

3 回答 3

3

您显示的数组嵌套在另一个数组中。所以外部数组长度为 1,内部数组就是你想要的。

要获得它,您必须首先使用[0]or获取外部数组的第一个元素first

testList[0].length
testList.first.length

我不确定为什么您的getHotelsList方法返回嵌套数组,它似乎不需要它。

于 2013-07-22T16:13:29.570 回答
2
hotel_count = getHotelsList.values.first.length

您也可以使用 来执行此操作[0],但first速度更快。

两个注意事项:

  • 一开始你不需要self
  • 在 Ruby 中对方法名使用驼峰式大小写是一个坏习惯。它应该更好get_hotels_list
于 2013-07-22T16:14:00.543 回答
2

您可以使用以下命令将其转换为单个数组flatten

hotel_count = self.getHotelsList.values.flatten.size
于 2013-07-22T16:15:01.297 回答