MST
星途 面试题库

面试题:Ruby代码审查之数组操作要点

假设有一个Ruby数组 `arr = [1, 2, 3, 4, 5]`,请编写一个方法,该方法接收这个数组作为参数,要求使用Ruby的迭代器方法,筛选出数组中的偶数,并将其平方后组成一个新的数组返回。在代码审查过程中,你认为实现这个功能的代码可能会出现哪些常见错误?
22.9万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试

代码实现

def filter_and_square_even(arr)
  arr.select { |num| num.even? }.map { |num| num ** 2 }
end

常见错误

  1. 使用错误的迭代器方法:例如错误地使用 each 方法,each 主要用于遍历执行块中的代码,但不会返回经过筛选和变换后的新数组。正确应该使用 select 筛选和 map 变换。
  2. 筛选条件错误:如把判断偶数的条件写错,写成 num % 2 != 0,这样筛选出来的就是奇数而非偶数。
  3. 平方操作错误:例如在 map 块中使用错误的运算符,写成 num * 2,这是将数字翻倍而不是平方。
  4. 未正确处理空数组:如果传入一个空数组,虽然上述代码可以正确返回空数组,但如果代码逻辑写得过于复杂,可能会在处理空数组时出现 nil 相关的错误,比如未考虑空数组时调用数组元素方法导致 NoMethodError