Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 所有的Ruby变量哈希{}_Arrays_Ruby_Variables - Fatal编程技术网

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]