当你在编程中遇到输出显示为 NaN
(Not a Number)时,通常意味着某个操作试图将非数字值当作数字来处理。这在数组求和时尤为常见,可能是因为数组中包含了非数字类型的元素。
undefined
、null
等。Infinity
、-Infinity
或 NaN
。为了确保数组中的所有元素都是数字并正确求和,可以使用以下方法:
Array.prototype.reduce
和类型检查function sumArray(arr) {
return arr.reduce((acc, val) => {
if (typeof val === 'number' && !isNaN(val)) {
return acc + val;
}
return acc;
}, 0);
}
const arr = [1, 2, '3', 4, null, undefined, NaN];
console.log(sumArray(arr)); // 输出: 7
Array.prototype.filter
和 Array.prototype.reduce
function sumArray(arr) {
const filteredArr = arr.filter(val => typeof val === 'number' && !isNaN(val));
return filteredArr.reduce((acc, val) => acc + val, 0);
}
const arr = [1, 2, '3', 4, null, undefined, NaN];
console.log(sumArray(arr)); // 输出: 7
这种方法适用于任何需要对数组中的数字进行求和的场景,特别是在处理用户输入或从外部数据源获取的数据时,确保数据的正确性和可靠性。
通过上述方法,你可以有效地处理数组中的非数字元素,确保求和结果的准确性。
技术创作101训练营
DBTalk
腾讯技术创作特训营第二季第4期
云+社区技术沙龙[第1期]
云+社区技术沙龙[第28期]
DB TALK 技术分享会
云+社区技术沙龙[第24期]
Elastic 中国开发者大会
DBTalk
领取专属 10元无门槛券
手把手带您无忧上云