首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过嵌套数组对计算公共元素的最简洁方法

通过嵌套数组对计算公共元素的最简洁方法
EN

Stack Overflow用户
提问于 2017-05-02 16:48:27
回答 4查看 112关注 0票数 2

我有两个嵌套数组:

代码语言:javascript
复制
one = [
  ["Hiking", "fishing", "photography"], 
  ["The Avengers", "The Dark Knight", "Lord of the Rings"], 
  ["Firefly", "Battlestar Galactica", "The Expanse"], 
  ["The Hobbit", "1984", "Dune", "Ender's Game"]
]
two = [
  ["Hiking", "photography"], 
  ["Whiplash", "Pulp Ficiton", "The Avengers"], 
  ["Firefly", "Battlestar Galactica", "The Expanse"], 
  ["The Hobbit", "1984", "Dune", "Ender's Game"]
]

我想我可以逐个迭代和比较,但是有没有更好的方法呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-02 16:55:41

可能的解决方案(假设您希望通过数组对查找公共元素):

代码语言:javascript
复制
one.zip(two).flat_map { |f, s| f & s }.count
#=> 10
票数 3
EN

Stack Overflow用户

发布于 2017-05-02 16:54:43

我会这样做:

代码语言:javascript
复制
(one.flatten & two.flatten).size
#=> 10
票数 4
EN

Stack Overflow用户

发布于 2017-05-03 02:14:33

您可以考虑以下几点,以避免创建临时数组one.zip(two)

代码语言:javascript
复制
one.size.times.reduce(0) { |t,i| t + (one[i] & two[i]).size }
  #=> 10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43733704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档