javascript - 使用递归对数组中的元素求和,即使它们是字符串
问题描述
必须创建一个函数来返回数组中元素的总和,但如果数组是
["a","b","c"] // output : abc
到目前为止我有
function calculateSumRecursion(array) {
//your code
if (array.length === 0 ) {
return 0
}
return array[0] + calculateSumRecursion(array.slice(1))
}
我发现了如何使用递归计算所有数字的总和,但是当它是一个字符串数组时
array = ["a","b","c"]
它返回我
// abc0
因为if语句..有什么办法可以说
if (array.length === 0) return nothing instead of a 0 (that work only when it's an array of number?)
解决方案
当长度为 1 时,您只需要return
数组中的唯一值,而不是等到长度为 0。这样,您总是对兼容类型(数字或字符串)求和。请注意,如果使用空数组调用函数,您仍然需要测试 0 数组长度。在这种情况下,您需要选择要返回的内容;根据要求,它是 0。
function calculateSumRecursion(array) {
if (array.length === 0) {
return 0;
}
if (array.length === 1) {
return array[0];
}
return array[0] + calculateSumRecursion(array.slice(1))
}
console.log(calculateSumRecursion([1, 2, 3, 4, 5]));
console.log(calculateSumRecursion(['a', 'b', 'c']));
console.log(calculateSumRecursion([]));
推荐阅读
- mysql - mysql将选择结果与一组值进行比较
- javascript - 使用 Javascript/React 合并图像
- javascript - 为什么使用 react-router 加载新路由需要刷新
- javascript - 在不刷新地图的情况下动态设置 Openlayers 中的矢量图层样式
- sql - ORACLE SQL-两个日期之间的天数
- javascript - 在javascript中从数组中删除“坏”值的最有效方法是什么?
- javascript - Visual Studio Code 不允许我调试我编写的特定代码
- c# - 带有 Blazor 的 ASP.NET Core:无法确定 cookie 身份验证
- java - JSP 抛出空指针异常
- php - 如何在 PHP 中运行 websocket 服务器时运行计算?