首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字符串与数组进行比较以确定最高索引值?

如何将字符串与数组进行比较以确定最高索引值?
EN

Stack Overflow用户
提问于 2014-08-12 09:23:20
回答 3查看 102关注 0票数 1

我有几个字符串需要与数组中的值进行比较,以确定哪个字符串的索引号最高。例如,数据如下所示:

代码语言:javascript
运行
复制
array = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']

v1 = "4"
v2 = "A"
v3 = "8"

我如何编写它,以便它可以比较每个值,并根据A的索引号为12返回v2是赢家的事实?

EN

回答 3

Stack Overflow用户

发布于 2014-08-12 10:54:31

一个简短的版本:

代码语言:javascript
运行
复制
array = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']

target = [4, "A", 8]
target & array  #=> [4, "A", 8]
array  & target #=> [4, 8, "A"]

(array & target ).last #=> "A"

target = ["B", "C"]
(array & target ).last #=> nil
票数 2
EN

Stack Overflow用户

发布于 2014-08-12 10:14:34

你可以这样写:

代码语言:javascript
运行
复制
array = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
a = array.map(&:to_s)
  #=> ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]

target = ["4", "A", "8"]
(target & a).empty? ? nil : a[target.map { |s| a.index(s) }.compact.max]
  #=> "A"

target = ["B", "C"]
(target & a).empty? ? nil : a[target.map { |s| a.index(s) }.compact.max]
  #=> nil

我假设array可能不会排序。

票数 1
EN

Stack Overflow用户

发布于 2014-08-12 10:38:38

代码语言:javascript
运行
复制
array = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']

v1 = "4"
v2 = "A"
v3 = "8"

array.reverse.map(&:to_s).find { |e| [v1, v2, v3].include?(e) }
# => "A"

代码语言:javascript
运行
复制
array.reverse.map(&:to_s).find(&[v1, v2, v3].method(:include?))
# => "A"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25254815

复制
相关文章

相似问题

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