Arrays 所有的Ruby变量哈希{}
我在这里尝试检测数组的哪个部分有“值” 选择方法如下所示:Arrays 所有的Ruby变量哈希{},arrays,ruby,variables,Arrays,Ruby,Variables,我在这里尝试检测数组的哪个部分有“值” 选择方法如下所示: a = content.select { |n| n == "a value" } 我试着让它计算位置: a = content.select { |n| n == "a value" } b = n + 1 当我试着用n个变量表示out-of-select时。我有: undefined local variable or method `n' 听起来您想使用: 如果您想知道包含此值的所有位置 content
a = content.select { |n| n == "a value" }
我试着让它计算位置:
a = content.select { |n| n == "a value" }
b = n + 1
当我试着用n个变量表示out-of-select时。我有:
undefined local variable or method `n'
听起来您想使用: 如果您想知道包含此值的所有位置
content = [ "b value", "a value", "x value", "z value", "a value" ]
content.each_with_index.select { |v, _i| v == 'a value' }.map { |_v, i| i }
# => [1,4]
您得到的整个错误是什么?
b=n+1
超出了您的选择范围,因此它正确地告诉您那里不存在n
n
仅存在于大括号{}
之间。是否查找第一个n
并返回递增的值?或者你想选择所有值,然后增加所有值?@nathanvda如果目标是获得第一个值,那么find
会比select
好得多……这与哈希函数有什么关系?…或者content.each|index.select{i | content[i]='a value'}
,可以说,它读起来更好,而且还避免了对.map{| u v,i | i}
的需要(可以改为编写.map(&:last)
)。
content = [ "b value", "a value", "x value", "z value", "a value" ]
content.each_with_index.select { |v, _i| v == 'a value' }.map { |_v, i| i }
# => [1,4]