当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。