當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Table.delete_if用法及代碼示例

本文簡要介紹ruby語言中 CSV::Table.delete_if 的用法。

用法

delete_if() { |header, self| ... }

刪除塊返回真值的行或列;返回 self

當訪問模式為 :row:col_or_row 時刪除行;使用每個 CSV::Row 對象調用塊:

source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
table = CSV.parse(source, headers: true)
table.by_row! # => #<CSV::Table mode:row row_count:4>
table.size # => 3
table.delete_if {|row| row['Name'].start_with?('b') }
table.size # => 1

當訪問模式為 :col 時刪除列;將每列的塊調用為包含標題和列字段數組的 2 元素數組:

source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
table = CSV.parse(source, headers: true)
table.by_col! # => #<CSV::Table mode:col row_count:4>
table.headers.size # => 2
table.delete_if {|column_data| column_data[1].include?('2') }
table.headers.size # => 1

如果沒有給出塊,則返回一個新的 Enumerator:

source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
table = CSV.parse(source, headers: true)
table.delete_if # => #<Enumerator: #<CSV::Table mode:col_or_row row_count:4>:delete_if>

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Table.delete_if。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。