首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数组内容联接到“English list”中

将数组内容联接到“English list”中
EN

Stack Overflow用户
提问于 2010-01-11 05:52:21
回答 2查看 3.9K关注 0票数 18

我喜欢加入一个数组,得到一个'English list‘。例如,['one', 'two', 'three']应该生成'one, two and three'

我写了这段代码来实现它(假设数组不是空的,在我的情况下不是这样的)

代码语言:javascript
复制
if array.length == 1
  result = array[0]
else
  result = "#{array[0, array.length].join(', ')} and #{array.last}"
end

但是我想知道是否存在一些“高级”的连接方法来实现这种行为?或者至少有一些更短/更好的代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-11 06:24:26

核心Ruby中不存在这样的方法。

不过,它已经在Rails的主动支持库中被implemented了:

代码语言:javascript
复制
['one', 'two', 'three'].to_sentence
#=> "one, two, and three"

分隔符是可配置的,默认情况下它也使用Rails的I18n。

如果您使用ActiveSupport或Rails,这将是完成此操作的首选方法。如果您的应用程序是非Railsy的,那么您的实现对于仅限英语的目的似乎很好。

票数 44
EN

Stack Overflow用户

发布于 2010-01-11 06:38:08

只是作为一个可读性提示。你可以写

代码语言:javascript
复制
array[0...-1] 

选择除最后一个元素之外的所有元素。

编辑,使用Nick的建议更新了代码示例。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2038787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档