【发布时间】:2021-01-16 13:02:08
【问题描述】:
function count5numbers1(arr){
const m1 = arr.toString().match(/[5]/g);
if (typeof m1 === 'string' || m1 instanceof String){
return "it's not a number";
}else if(m1 === null){
return 0;
}else{
return m1.length;
}
}
console.log(count5numbers1([1,2,5,43]));
console.log(count5numbers1([1,2,3,5]));
console.log(count5numbers1([1,2,4,2]));
console.log(count5numbers1([2,4,54,15]));
console.log(count5numbers1([1,5,55,555]));
console.log(count5numbers1([6,3,2,1]));
console.log(count5numbers1(['notnumber,its a string']));
我得到的答案是: [1,1,0,2,6,0,0]
但预期的答案是: [1,1,0,2,6,0,不是数字]
【问题讨论】:
-
我没有看到与“重复计数”的联系。您的代码中没有任何内容可以检测重复项。
-
m1 保存匹配返回的值,永远不会是字符串......
-
不太清楚您要做什么。当数组中的所有元素都是字符串时,您想记录“它不是数字”吗?
-
就像@MosheSommers 所说,
String.prototype.match()返回匹配数组或null,因此您的第一个if条件永远不会为真。 -
您在寻找什么?如果数组中有 any 字符串,或者数组是 all 字符串,是否要打印 NaN?
标签: javascript arrays function if-statement match