MST

星途 面试题库

面试题:JavaScript自定义实现类似reduce的符号处理复杂逻辑

假设有一个包含多个数字的数组,要求自定义实现一个类似JavaScript中reduce符号的功能,计算出数组中所有数字的平方和,并且如果数组中有负数,需要将其先变为正数再计算平方和。请编写代码实现,并解释实现思路。
19.1万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

实现代码(以Python为例)

def custom_reduce(arr):
    result = 0
    for num in arr:
        if num < 0:
            num = abs(num)
        result += num ** 2
    return result


arr = [1, -2, 3, -4]
print(custom_reduce(arr))

实现思路

  1. 初始化结果变量:定义一个变量 result 并初始化为0,用于存储最终的平方和。
  2. 遍历数组:使用 for 循环遍历数组中的每一个元素。
  3. 处理负数:如果当前元素是负数,使用 abs 函数将其转换为正数。
  4. 计算平方和:将处理后的数字进行平方运算,并累加到 result 中。
  5. 返回结果:循环结束后,返回 result,即数组所有数字的平方和。