MST

星途 面试题库

面试题:JavaScript数组读取与类型转换错误处理

假设你有一个包含不同数据类型元素的数组,例如['1', 2, true]。当使用某个函数期望接收数字类型的数组元素并进行计算(如求和)时,如何在读取数组元素时处理类型转换可能出现的错误,同时确保程序不会因错误而崩溃,用代码实现你的思路。
17.1万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
def sum_array(arr):
    total = 0
    for element in arr:
        try:
            if isinstance(element, bool):
                continue
            num = float(element)
            total += num
        except ValueError:
            continue
    return total


array = ['1', 2, true]
result = sum_array(array)
print(result)

在上述Python代码中:

  1. sum_array 函数用于计算数组中可转换为数字的元素的和。
  2. 使用 try - except 块来捕获在将元素转换为浮点数时可能出现的 ValueError 异常。如果转换失败,就跳过该元素继续处理下一个元素。
  3. 由于布尔值 TrueFalse 也能被转换为数字(True 为1,False 为0),这里如果不希望它们参与计算,使用 isinstance 检查并跳过布尔类型。

如果使用JavaScript,代码如下:

function sumArray(arr) {
    let total = 0;
    for (let i = 0; i < arr.length; i++) {
        let num = parseFloat(arr[i]);
        if (!isNaN(num) && typeof num === 'number') {
            total += num;
        }
    }
    return total;
}

let array = ['1', 2, true];
let result = sumArray(array);
console.log(result);

在JavaScript代码中:

  1. sumArray 函数遍历数组。
  2. 使用 parseFloat 尝试将数组元素转换为数字,isNaN 用于检查转换是否成功,如果成功且类型为数字,则累加到 total 中。