4

Rubyには、要素ごとに連結したい2つの配列があります。pasteRでは、これはベクトル化されているため、関数を使用するのと同じくらい簡単です。

# R
values <- c(1, 2, 3)
names <- c("one", "two", "three")
paste(values, names, sep = " as ")
[1] "1 as one"   "2 as two"   "3 as three"

Rubyではもう少し複雑なので、もっと直接的な方法があるかどうか知りたいです。

# Ruby
values = [1, 2, 3]
names = ["one", "two", "three"]
values.zip(names).map { |zipped| zipped.join(" as ") }
 => ["1 as one", "2 as two", "3 as three"] 
4

1 に答える 1

3

別の方法:

values = [1, 2, 3]
names = ["one", "two", "three"].to_enum 
values.map{|v|"#{v} as #{names.next}"}
# => ["1 as one", "2 as two", "3 as three"]

ただし、これは2つ以上の配列では複雑になります。OP のバージョンは、複数のアレイでより適切に機能します。

于 2012-11-30T16:32:07.553 に答える