【问题标题】:How to find the second half of an array如何找到数组的后半部分
【发布时间】:2020-08-30 17:04:26
【问题描述】:

我可以使用以下方法找到数组的前半部分:

def first_half(array)
  new_array = []

  i = 0
  while i < (array.length / 2.0)
    ele = array[i]
    new_array << ele

    i += 1
  end

  return new_array
end

print first_half(["John", "Jack", "Jim", "Thomas"])

如何使用while 循环并找到数组的后半部分?

【问题讨论】:

  • 我正在努力自学ruby,所以放心,没有作业哈哈!
  • 我强烈推荐阅读 Ruby 的 Enumerable documentation 几遍。你寻求的真正答案就在那里。而且,与大多数编程语言一样,TIMTOWTDI。您的问题缺少预期的输出。请参阅“How to Ask”、“Stack Overflow question checklist”和“MCVE”及其所有链接页面。为什么必须使用while 循环?

标签: arrays ruby loops


【解决方案1】:

您可以遍历整个数组并仅在满足您的条件时添加元素

i = 0
while i < array.length
  ele = array[i]
  if i < array.length / 2.0
    new_array << ele
  end
  i += 1
end

现在您可以只更改 if 条件

【讨论】:

    【解决方案2】:

    您已经以一种不必要的复杂方式计算了数组的前半部分。对于数组a,表达式a[i..n]将位置i的数组元素返回到n..是构造Range的运算符)。

    主要的问题是你必须决定数组的元素个数为奇数,中间的元素应该放在前半部分还是后半部分。因此,在您的情况下:

    first_half = array[0..(array.length/2-1)]
    second_half = array[(array.length/2)..(array.length-1)]
    

    【讨论】:

      猜你喜欢
      • 2020-09-21
      • 2013-01-04
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多