面试题答案
一键面试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代码中:
sum_array
函数用于计算数组中可转换为数字的元素的和。- 使用
try - except
块来捕获在将元素转换为浮点数时可能出现的ValueError
异常。如果转换失败,就跳过该元素继续处理下一个元素。 - 由于布尔值
True
和False
也能被转换为数字(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代码中:
sumArray
函数遍历数组。- 使用
parseFloat
尝试将数组元素转换为数字,isNaN
用于检查转换是否成功,如果成功且类型为数字,则累加到total
中。