当前位置: 首页 > 知识库问答 >
问题:

尝试使用index获取数组的前一项和下一项

钱峻
2023-03-14

我想做的是创建一个新的数组,它来自一个输入数组并遍历它。新数组的每一项都是迭代的前一项和下一项相乘的结果。

例如:

Array input: [1, 2, 3, 4, 5, 6]
Array_final: [2, 3, 8, 15, 24, 30]
   first item: 2*1 (because there's no previous item)
   second item: 3*1
   third item: 4*2
   forth item: 5*3
   fifth item: 6*4
   sixth item: 6*5 (we use the current item because we don't have a next one)

这是我的代码,我不明白为什么我一直得到array_final=[0,0,0,0,0]

class Arrays
      def self.multply(array)
        array_final = []
        last_index = array.length-1
      
        array.each_with_index do |num, i|
          if i == 0
            array_final.push (num[i+1])
          elsif i == last_index
            array_final.push (num*num[i-1])
          else
            array_final.push(num[i+1]*num[i-1])
          end
        end
        return array_final
      end
    end

共有2个答案

翟光赫
2023-03-14

您可以使用each_cons获取顺序项:

final = [input[0] * input[1]]

input.each_cons(3) do |precedent, _current, subsequent|
  final << precedent * subsequent
end

final << input[-1] * input[-2]

活的例子

傅博容
2023-03-14

当它是一个元素时,您将num用作数组。

我想你的意思是:

array.each_with_index do |num, i|
  if i == 0
    array_final.push (array[i+1])
  elsif i == last_index
    array_final.push (num*array[i-1])
  else
    array_final.push(array[i+1]*array[i-1])
  end
end
 类似资料:
  • 假设我们有一组对象,比如: 我想迭代遍历水果,并每次告诉当前、上一个和下一个水果的名称。我会这样做: 但显然它不适用于下一个和上一个项目…有什么想法吗? 请注意,我不想使用经典for循环 (对于i=0;i 非常感谢!

  • 迭代时如何获取数组中的下一项? 我知道我可以使用这个语法的循环,但更喜欢上一个。

  • 问题内容: 到目前为止,这是我的JavaScript代码: 当前,它需要URL中数组的倒数第二个项目。但是,我想检查数组中的最后一项是否正确,如果是,请改为抓取倒数第三项。 问题答案: 如果您的服务器为“ index.html”和“ inDEX.htML”提供相同的文件,则您也可以使用:。 但是,如果可能的话,您可能要考虑在服务器端进行此操作:它将更加干净并且可以在没有JS的情况下使用。

  • 在订单类中,我们有UUID和其他字段: 解析器可以是这样的: 我知道它不起作用,那么如何实现下一个项目呢?UUID 是否基于时间并且可以用作索引?

  • 我被困在这个看似简单的任务上。 我有一个用户,他有很多商店,有很多产品。。 我正在尝试为某个用户获取所有产品。 这是有效的,并返回商店与他们的产品 但是我只需要产品的集合。我尝试了以下方法,但它搞砸了查询 知道我做错了什么吗?非常感谢。

  • 问题内容: 我有这个数组: 是否可以通过知道名称来获取值或特定元素? 像这样的东西: 要么 问题答案: 通常通过数字索引访问数组,因此在您的示例中。如果您知道每个对象的属性都是唯一的,则可以将它们存储在对象而不是数组中,如下所示: 如果您实际上想要一个像您的帖子中那样的对象数组,则可以遍历该数组并在找到具有对象具有所需属性的元素时返回: