Như chúng ta đều biết, Array#compact
xóa nil
yếu tố khỏi mảng.có tương đương với Array # compact cho các phần tử trống không?
array.reject { |element| element.empty? }
sẽ loại bỏ các yếu tố rỗng như []
(ở đường ray bạn cũng có thể làm #blank?
để thoát khỏi phần tử rỗng vànil
yếu tố).
Có phương pháp viết tắt để xóa các phần tử trống/trống như Array#compact
không? Hoặc đang sử dụng Array#reject
đặt cược tốt nhất của tôi?
Tôi chưa thấy số trống "tương đương" #compact
, nếu có. Nhưng có lẽ tôi chỉ nhìn nó.
Tôi cho rằng bạn cũng có thể 'array.select (&: present?)' Trong Rails nếu đọc tốt hơn. –
Điểm tốt; vì một lý do nào đó tôi thường chỉ nghĩ đến việc sử dụng '&' khi tôi đang làm 'Array # map'. – gregates
@muistooshort Ý tưởng tuyệt vời với 'select (&: present?)' Điều này sẽ trả về một mảng trống nếu tất cả các phần tử đều trống. Phương thức 'reject' đã trả về' nil' gây ra các phương thức kế tiếp như 'join' hoặc' map' thành thất bại. – scarver2