Bunu Ruby'de nasıl uygulayabilirim? Herhangi bir kod tekniği var mı? Diyelim ki, bir tamsayı dizisinin 3'ten az olan tüm elemanlardan kurtulmak istiyorum.Ruby'deki dizideki bir koşulu karşılayan tüm öğeler nasıl kaldırılır?
33
A
cevap
51
kullanabilirsiniz
ya new_array = array.reject {|x| x < 3}
(reject
döner yeni dizi) veya array.reject! {|x| x < 3}
(delete_if
aka reject!
yerinde diziyi değiştirir).
da bunları reddetmek değil, unsurları tutmak için koşul belirtmek dışında reject
gibi davranır, hangi select
yöntem (biraz daha yaygın) var (yani elemanlar 3'ten az kurtulmak için, size new_array = array.select {|x| x >= 3}
kullanırsınız).
8
a = [ "a", "b", "c" ]
a.delete_if {|x| x >= "b" } #=> ["a"]
9
array.reject! {|x| x < 3}
ve
array.delete_if {|x| x < 3}
aynı mı olduğunu işaret Muhtemelen değer, ama
array.reject {|x| x < 3}
hala aynı sonucu döndüren, ancak "dizi" değişmez Will .
0
Alfabetik sırayla harfler ve sayılar için iyi çalışır. Değerleri karşılaştırılır, koşullar değişirse ne olur?
array = ["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg", "Uses", ": ", "Arc welding, material handling, machine loading, application", "This particular unit is in excellent condition with under 700 hours."]
Biz değerini örneği "kullanır" sonuçta elemetns silmeniz gerekir:
array = ["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg"]
Yani, bu desition çalışmıyor (sadece bir elemanını kaldırmak):
array.delete_if {|x| x >= "Uses" }
["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg", ": ", "Arc welding, material handling, machine loading, application", "This particular unit is in excellent condition with under 700 hours."]
İlgili konular
- 1. ConcurrentBag'den tüm öğeler nasıl kaldırılır?
- 2. Birden çok koşulu eşleştiren öğeler nasıl bulunur?
- 3. Firebase'deki öğeler nasıl kaldırılır RecyclerView
- 4. Belirtilen sınıflar olmayan öğeler nasıl kaldırılır
- 5. JBuilder ile bir dizideki boş bir öğe tamamen nasıl kaldırılır
- 6. Bir dizideki bir kerede birden çok değer nasıl kaldırılır
- 7. Bir dizideki tüm değerler nasıl çoğaltılabilir?
- 8. querySelectorAll kullanılarak getirilen öğeler nasıl kaldırılır?
- 9. 2d dizideki tüm olasılıklar
- 10. Paralel olarak bir dizideki sıfır değerleri nasıl kaldırılır
- 11. Nasıl olursa koşulu
- 12. Raylar 3 + activerecord, bir koşulu karşılayan tüm kayıtlar için tek bir alanı "toplu güncelleştirme" için en iyi yol
- 13. Bir elemandaki tüm dinleyiciler nasıl kaldırılır?
- 14. Bir mongodb örneğinden tüm çoğaltma nasıl kaldırılır?
- 15. Label'dan tüm dolgular nasıl kaldırılır?
- 16. Tüm boş XElements'lar nasıl kaldırılır
- 17. Dizideki sözcüğün tüm oluşumlarını bul
- 18. koşulu
- 19. HTML'den öğeler nasıl kaldırılır/Sayfa tamamen değiştirilsin mi?
- 20. Java ArrayList.add() dizideki tüm öğeleri
- 21. PostgreSQL: Sınırlama koşullarını karşılayan rastgele kayıtlar seç
- 22. PHP: Bir dizideki tüm olası değer kombinasyonlarını nasıl üretiyorsunuz?
- 23. PROC SQL - Tüm Öğeler çifti
- 24. Java'da JFrame'in tüm bileşenleri nasıl kaldırılır?
- 25. iPhone: UIScrollView öğesinden tüm nesneler nasıl kaldırılır
- 26. Ruby'deki bir dizi dizideki bir sütundan tüm öğeleri seçin.
- 27. NSMutableArray öğesinden tüm nesneler nasıl kaldırılır?
- 28. Tüm Click olay işleyicileri nasıl kaldırılır?
- 29. Tüm test dersleri Pharo'dan nasıl kaldırılır?
- 30. Diğer tüm satırlar sed ile nasıl kaldırılır?
Serin teknik için teşekkürler;) – Chan
Ruby's ['# delete_if'] (http://ruby-doc.org/core-2.2.0/Array.html#method-i-delete_if) ve [' #reject! '] (http://ruby-doc.org/core-2.2.0/Array.html#method-i-reject-21) kayıyor çok farklı. 'reddetme!', hiçbir öğe değiştirilmediyse nil 'değerini döndürür ve blok her çağrıldığında diziyi değiştirir. – jwadsack