gpt4 book ai didi

ruby - 数组用逗号连接,仅当元素不为 nil 时

转载 作者:数据小太阳 更新时间:2023-10-29 07:08:45 25 4
gpt4 key购买 nike

是否有一种简单明了的方法来实现 array.join(", "),其中逗号仅包含在存在的元素之间?也就是说,如果数组中不存在某些元素,我不会得到孤儿逗号吗?

最佳答案

例子:

["", nil, "测试词", 5, 7, nil, "", nil, "", 7, 6, ""] => "测试词, 5, 7, 7, 6"

编辑:请注意,此处的第一种方法需要 Ruby on Rails。将第二种方法用于仅限 Ruby 的解决方案

您可以尝试删除 nil 和空字符串 "" 然后用逗号连接(它删除所有 nilcompact,然后它在 "" 上执行 split 以创建一个二维数组,其中任何 "" 元素在第一个数组只是新二维数组中的空数组,然后它执行 flatten,将二维数组变回普通数组,但删除了所有空数组,最后它执行 join (", ") 在这个数组上:

> array.compact.split("").flatten.join(", ")


array = ["", nil, "test word", 5, 7, nil, "", nil, "", 7, 6, ""]

array.compact => ["", "test word", 5, 7, "", "", 7, 6, ""].split("") => [[], ["test word", 5, 7], [], [7, 6], []].flatten => ["test word", 5, 7, 7, 6].join(", ") => "test word, 5, 7, 7, 6"

编辑:另一种方式是:

> array.reject(&:blank?).join(", ")


array = ["", nil, "test word", 5, 7, nil, "", nil, "", 7, 6, ""]

array.reject(&:blank?) => ["test word", 5, 7, 7, 6].join(", ") => "test word, 5, 7, 7, 6"

关于ruby - 数组用逗号连接,仅当元素不为 nil 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29757441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com