gpt4 book ai didi

javascript - 检查数组内可以成功转换为数字的字符串数量

转载 作者:行者123 更新时间:2023-11-28 10:36:49 25 4
gpt4 key购买 nike

以下是我正在执行的任务的描述:

编写一个名为 countNumbers 的函数,它接受一个字符串数组。该函数应返回数组中可以成功转换为数字的字符串数量。例如,字符串“1”可以成功转换为数字1,但字符串“hello”无法转换为数字。

countNumbers(['a','b','3','awesome','4']); // 2
countNumbers(['32', '55', 'awesome', 'test', '100']); // 3
countNumbers([]); // 0
countNumbers(['4','1','0','NaN']); // 3
countNumbers(['7', '12', 'a', '', '6', '8', ' ']); // 4

我的代码:

function countNumbers(arr) {
var count = 0;
for (num in arr) {
if (Number(arr[num]) !== NaN) {
count++;
}
}
return count;
}

当我控制台日志 (Number(arr[num]) 时,我确实在控制台中看到 NaN,但是当我在循环中进行比较时,计数变量不会增加,最终返回值等于数组的长度。

非常感谢任何有关我可能做错的事情或我忽略的事情的提示。

最佳答案

您可以使用 isFinite 进行过滤并计算长度。

+'' -> 0
+' ' -> 0

function countNumbers(array) {
return array.filter(isFinite).length;
}

console.log(countNumbers(['a','b','3','awesome','4'])); // 2
console.log(countNumbers(['32', '55', 'awesome', 'test', '100'])); // 3
console.log(countNumbers([])); // 0
console.log(countNumbers(['4','1','0','NaN'])); // 3
console.log(countNumbers(['7', '12', 'a', '', '6', '8', ' '])); // 4, now 6

如果您确实只喜欢数字,那么您可以使用正则表达式进行检查。

function countNumbers(array) {
return array.filter(RegExp.prototype.test, /^\d+$/).length;
}

console.log(countNumbers(['a','b','3','awesome','4'])); // 2
console.log(countNumbers(['32', '55', 'awesome', 'test', '100'])); // 3
console.log(countNumbers([])); // 0
console.log(countNumbers(['4','1','0','NaN'])); // 3
console.log(countNumbers(['7', '12', 'a', '', '6', '8', ' '])); // 4

关于javascript - 检查数组内可以成功转换为数字的字符串数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60355456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com