数组 – 如何在Ruby中的两个不同位置将数组转换为具有两个不同分
发布时间:2020-12-17 01:51:10 所属栏目:百科 来源:网络整理
导读:我想在两个不同的地方将一个数组转换为一个带有两个不同分隔符的字符串.含义: array = [1,2,3,4]after converting: separator 1: (":") separator 2: ("and")string = "1:2:3: and 4"ORstring = "1:2 and 3:4" 我如何构建动态和短代码,让我将数组(任意长度)
我想在两个不同的地方将一个数组转换为一个带有两个不同分隔符的字符串.含义:
array = [1,2,3,4] after converting: separator 1: (":") separator 2: ("and") string = "1:2:3: and 4" OR string = "1:2 and 3:4" 我如何构建动态和短代码,让我将数组(任意长度)转换为一个字符串,允许我在不同的位置插入多个分隔符. 我目前的解决方案是凌乱和丑陋的: def oxford_comma(array) if array.length == 1 result_at_1 = array.join return result_at_1 elsif array.length == 2 result_at_2 = array.join(" and ") return result_at_2 elsif array.length == 3 last = array.pop result = array.join(",") last = ",and " + last result = result + last elsif array.length > 3 last = array.pop result = array.join(",and " + last result = result + last return result end end 有人可以帮我建立一个更好,更短,更抽象的方法吗? 解决方法pos = 2 [array[0...pos],array[pos..-1]]. map { |e| e.join ':' }. join(' and ') #? "1:2 and 3:4" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |