SORU
26 Kasım 2009, PERŞEMBE


Nasıl Ruby başka bir dizi için bir dizi ekleyin ve çok boyutlu bir sonuç ile sona değil mi?

somearray = ["some", "thing"]

anotherarray = ["another", "thing"]

somearray.push(anotherarray.flatten!)

Bekliyordum

["some","thing","another","thing"]

CEVAP
26 Kasım 2009, PERŞEMBE


İşe yarar bir fikir var, ama #flatten! onun alıcısı düzleştirir yanlış yerde..., [1,2,'foo','bar'] [1, 2, ['foo', 'bar']] açmak için kullanabilirsiniz.

Kuşkusuz bazı yaklaşımlar unutuyorum, ama sen yapabilirsinbağlamak:

a1.concat a2
a1   a2              # creates a new array, as does a1  = a2

ya/ekleme önüne:

a1.push(*a2)         # note the asterisk
a2.unshift(*a1)      # note the asterisk, and that a2 is the receiver

yatuttur:

a1[a1.length, 0] = a2
a1[a1.length..0] = a2
a1.insert(a1.length, *a2)

yaekleme ve dümdüz:

(a1 << a2).flatten!  # a call to #flatten instead would return a new array

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fuse

    Fuse

    21 Kasım 2005
  • stewmurray47

    stewmurray47

    1 Kasım 2006
  • Truc Minh

    Truc Minh

    23 Ocak 2011