代码之家  ›  专栏  ›  技术社区  ›  Veger

将数组内容加入“英语列表”

  •  18
  • Veger  · 技术社区  · 15 年前

    我喜欢加入一个数组,生成一个“英语列表”。例如 ['one', 'two', 'three'] 应该导致 'one, two and three' .

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

    if array.length == 1
      result = array[0]
    else
      result = "#{array[0, array.length].join(', ')} and #{array.last}"
    end
    

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

    2 回复  |  直到 15 年前
        1
  •  44
  •   molf    14 年前

    信息技术 曾经 implemented

    ['one', 'two', 'three'].to_sentence
    #=> "one, two, and three"
    

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

        2
  •  8
  •   akuhn    12 年前

    作为可读性提示。你可以写

    array[0...-1] 
    

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