我想做的是创建一个新的数组,它来自一个输入数组并遍历它。新数组的每一项都是迭代的前一项和下一项相乘的结果。
例如:
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
您可以使用each_cons
获取顺序项:
final = [input[0] * input[1]]
input.each_cons(3) do |precedent, _current, subsequent|
final << precedent * subsequent
end
final << input[-1] * input[-2]
活的例子
当它是一个元素时,您将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 是否基于时间并且可以用作索引?
问题内容: 我有这个数组: 是否可以通过知道名称来获取值或特定元素? 像这样的东西: 要么 问题答案: 通常通过数字索引访问数组,因此在您的示例中。如果您知道每个对象的属性都是唯一的,则可以将它们存储在对象而不是数组中,如下所示: 如果您实际上想要一个像您的帖子中那样的对象数组,则可以遍历该数组并在找到具有对象具有所需属性的元素时返回: