相关疑难解决方法(0)

通过ruby数组迭代迭代

我如何迭代ruby数组并始终获得两个值,当前和下一个,如:

[1,2,3,4,5,6].pairwise do |a,b|
  # a=1, b=2 in first iteration
  # a=2, b=3 in second iteration
  # a=3, b=4 in third iteration
  # ...
  # a=5, b=6 in last iteration
end
Run Code Online (Sandbox Code Playgroud)

我的用例:我想测试数组是否已排序,并且通过使用这样的迭代器,我总能比较两个值.

我不是each_slice在这个问题中寻找:将ruby数组转换为连续对的数组

ruby arrays iterator

18
推荐指数
1
解决办法
4584
查看次数

迭代一个数组并在当前之前返回next和元素

我如何在迭代数组时从数组中获取当前元素的下一个和之前的数据.

array.each do |a|
   # I want to fetch next and before current element.
end
Run Code Online (Sandbox Code Playgroud)

ruby arrays

12
推荐指数
2
解决办法
9995
查看次数

重叠相当于Array#slice

鉴于这个Ruby数组:

[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

像这样迭代它的最简单方法是什么?

[[1,2], [2,3], [3,4], [4,5]]
Run Code Online (Sandbox Code Playgroud)

或这个?

[[1,2,3], [2,3,4], [3,4,5]]
Run Code Online (Sandbox Code Playgroud)

ruby arrays

10
推荐指数
1
解决办法
675
查看次数

如何在n个元素的重叠组中迭代数组?

假设你有这个数组:

arr = w|one two three|
Run Code Online (Sandbox Code Playgroud)

如何通过将两个连续元素作为块参数进行迭代,如下所示:

1st cycle: |nil, 'one'|
2nd cycle: |'one', 'two'|
3rd cycle: |'two', 'three'|
Run Code Online (Sandbox Code Playgroud)

Sofar我只来这里:

arr.each_index { |i| [i - 1 < 0 ? nil: arr[i - 1], arr[i]] }
Run Code Online (Sandbox Code Playgroud)

更好的解决方案?有类似的东西each(n)吗?

ruby arrays methods loops

4
推荐指数
2
解决办法
590
查看次数

是否有算法从数组中提取二重奏中的值并对其进行操作?

我有一个像这样的数组:

[1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我希望得到像这样的二重奏中的物品:

  • 1,2
    • 做一些操作......
  • 2,3
    • 做一些操作......
  • 3,4
    • 做一些操作......
  • 4,5
    • 做一些操作......
  • 5,6
    • 做一些操作......
  • 6,7
    • 做一些操作......
  • 7,8
    • 做一些操作......
  • 8,9
    • 做一些操作......

请使用Ruby建议一种优雅的方法来实现这一点.

ruby algorithm

3
推荐指数
1
解决办法
130
查看次数

在红宝石中重叠切片

鉴于我有数组[1,2,3,4,5,6,7,8,9,10],一次抓取2个元素的最短路径是什么,同时确保每个切片之间存在重叠.例如:

预期结果

[1,2]
[2,3]
[3,4]
[4,5]
[5,6]
[6,7]
[7,8]
[8,9]
[9,10]
[10,nil]
Run Code Online (Sandbox Code Playgroud)

ruby

3
推荐指数
1
解决办法
161
查看次数

枚举数组但将数组的子集传递给块而不是单个元素

我是ruby的新手,我一直在阅读很多教程.昨天我SWEAR我读each了一个在数组上枚举的语句(或类似的东西)的例子,然后将数组的子集传递给了块.这是一个例子,但语法错误(或者我使用了错误的方法)所以这实际上不会运行.

arry = ["a", "b", "c", "d", "e"]

arry.each(3) {|a, b, c| puts a+b+c}
Run Code Online (Sandbox Code Playgroud)

如果我使用正确的命令,这将打印:abc bcd cde; 它需要从索引开始的数组的前三个成员,并且当没有足够长的字符串来提供所有三个参数时,枚举结束.我不记得怎么做了,我似乎无法谷歌正确找到它.你们中的任何人都知道吗?

ruby

2
推荐指数
1
解决办法
101
查看次数

迭代循环访问两个元素(如果存在)

好吧,我还没有找到一个干净的解决方案来轻松地在Ruby中编写这段代码:

# Java style version:
array.each do |i, el|
  if i < array.length - 1
     process(array[i], array[i+1])
  end
end

# Would be nice if I could do something like this:
array.each do |i, el, next|
  process(el, next)
end
Run Code Online (Sandbox Code Playgroud)

ruby iterator loops

1
推荐指数
1
解决办法
63
查看次数

如何切片数组值?

如何切片数组值?例如,我有:

a=[1,2,3,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

我需要:

[[1, 2], [2, 3], [3, 4], [4, 5], ...]
Run Code Online (Sandbox Code Playgroud)

ruby arrays

-2
推荐指数
1
解决办法
74
查看次数

标签 统计

ruby ×9

arrays ×5

iterator ×2

loops ×2

algorithm ×1

methods ×1