Project1

标题: 如何判断数组包含值 [打印本页]

作者: fux2    时间: 2010-12-4 18:45
标题: 如何判断数组包含值

a=[[1,2,3],[4,5,6]]
如何判断其中是否包含[4,5,*], *为任意数
作者: 退屈£无聊    时间: 2010-12-4 20:13
将带嵌套的数组重整为不带嵌套的单纯数组,并返回它。flatten!的重整具有破环性,若原数组不带嵌套则返回nil。

例:

p [1, [2, 3, [4], 5]].flatten   #=> [1, 2, 3, 4, 5]

array = [[[1, [2, 3]]]]
array.flatten!
p array                         #=> [1, 2, 3]
include?(val)
若数组中包含==val的元素就返回真。

index(val)
返回数组中第一个==val的元素的位置。若没有与其相等的元素则返回nil。

indexes(index_1, ... , index_n) ((<obsolete>))
indices(index_1, ... , index_n) ((<obsolete>))
以数组形式返回其索引值与各参数值相等的元素。若指定了超出范围的索引值时,将指派nil与其对应。

例:

ary = %w( a b c d e )
p ary.indexes( 0, 2, 4 )          #=> ["a", "c", "e"]
p ary.indexes( 3, 4, 5, 6, 35 )   #=> ["d", "e", nil, nil]
p ary.indexes( 0, -1, -2 )        #=> ["a", "e", "d"]
p ary.indexes( -4, -5, -6, -35 )  #=> ["b", "a", nil, nil]

也不知道我拿的是否正确.
具体请参考RM手册里的ARRAY
作者: fux2    时间: 2010-12-4 20:17
回复 退屈£无聊 的帖子

囧……我只是判断啊……
作者: IamI    时间: 2010-12-4 20:22
勤奋一下会杀了你么……
for i in a
   if i.is_a?(Array) and i.include?(2) and i.include?(3) and i.length == 3
     return true
   end
end
return false
作者: bbaugle    时间: 2010-12-4 20:28
比如要判断@a
已知@a = [64,97,15]
要判断@a是否含 97这个值
那么
for i in [email protected]
if @a == 97
@index = i
p @index
# 这样就能p出含97的@a了
end
end




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1