繁体   English   中英

如何将数组中的每个元素都转换为自己的数组?

[英]How do I convert every element in an array to its own array?

使用 Ruby 2.4。 我有一个字符串数组...

["a", "b", "c"]

我如何采用上述内容并将每个元素转换为它自己的一个元素数组? 所以我希望这样的操作的结果是

[["a"], ["b"], ["c"]]

?

您可以使用zip

["a", "b", "c"].zip #=> [["a"], ["b"], ["c"]] 
a.map { |s| Array(s) }

要么

a.map { |s| [s] }

另外,您可以使用combinationpermutation方法,它还提供了更多功能

a.combination(1).to_a
#=> [['a'], ['b'], ['c']]
a.combination(2).to_a
#=> [["a", "b"], ["a", "c"], ["b", "c"]]     

a.permutation(1).to_a
#=> [['a'], ['b'], ['c']]
a.permutation(2).to_a
#=> [["a", "b"], ["a", "c"], ["b", "a"], ["b", "c"], ["c", "a"], ["c", "b"]]

有趣的是,您可以使用Array#zip来执行此操作。 我没有意识到#zip没有争论就可以工作。 Ruby 总是有新的技巧。

并不是说这更好,但它可能更直观:

>> ["a", "b", "c"].each_slice(1).to_a
=> [["a"], ["b"], ["c"]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM