加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何从Ruby数组中选择满足谓词的前n个元素?

发布时间:2020-12-17 02:47:31 所属栏目:百科 来源:网络整理
导读:我想从数组中获取所有项目,这些项目满足谓词.一旦我看到一个不满足的元素,我应该停止迭代.例如: [1,4,-9,3,6].select_only_first { |x| x 0} 我期待得到:[1,4] 解决方法 这是你想要的: arup@linux-wzza:~ pry[1] pry(main) [1,6].take_while { |x| x 0}=
我想从数组中获取所有项目,这些项目满足谓词.一旦我看到一个不满足的元素,我应该停止迭代.例如:

[1,4,-9,3,6].select_only_first { |x| x > 0}

我期待得到:[1,4]

解决方法

这是你想要的:

arup@linux-wzza:~> pry
[1] pry(main)> [1,6].take_while { |x| x > 0}
=> [1,4]
[2] pry(main)>

这是文档:

arup@linux-wzza:~> ri Array#take_while

= Array#take_while

(from ruby site)
------------------------------------------------------------------------------
  ary.take_while { |arr| block }  -> new_ary
  ary.take_while                  -> Enumerator

------------------------------------------------------------------------------

Passes elements to the block until the block returns nil or false,then stops
iterating and returns an array of all prior elements.

If no block is given,an Enumerator is returned instead.

See also Array#drop_while

  a = [1,2,5,0]
  a.take_while { |i| i < 3 }  #=> [1,2]


lines 1-20/20 (END)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读