如何识别任何字符串?

时间:2018-03-21 19:48:38

标签: javascript arrays string random numbers

数组随机显示3个数字,我必须编写一个总结3个数字的代码,但数组有时会显示一个字符串:

[96, ".!asd", 182]
["@#$%", 5, 43]
[64, "bd", 48]

如果数组中有字符串,我想使用“if”返回“无效”。

if (...){
    return not valid
}

如果有办法识别任何字符串,请告诉我代码吗?

7 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.some()查看您的数组是否包含NaN&#39>



var x = [96, ".!asd", 182]
var y = [96, 1000, 182]
console.log(x.some(isNaN))
console.log(y.some(isNaN))




答案 1 :(得分:1)

您可以使用isNaN来确定搅拌是否为数字

isNaN('123') //false   
isNaN('Hello') //true    

答案 2 :(得分:1)

使用对象 Number

if (Number.isNaN(+element_in_array)) return "Not Valid!!"

function sum(array) {
  if (array.some((n) => Number.isNaN(+n))) {
    return "Invalid data, at least one element is not a number.";
  }
  
  return array.reduce((a, n) => a + Number(n), 0);
}

console.log(sum([96, ".!asd", 182]))
console.log(sum(["@#$%", 5, 43]))
console.log(sum([64, "bd", 48]))
console.log(sum([64, 44, 48]))

答案 3 :(得分:1)

您应该使用isNaN功能,如下所述:Is there a (built-in) way in JavaScript to check if a string is a valid number?

isNaN(123)         // false
isNaN('123')       // false
isNaN('1e10000')   // false (This translates to Infinity, which is a number)
isNaN('foo')       // true
isNaN('10px')      // true

答案 4 :(得分:0)

您可以使用NaN来确定所有元素是否都是数字,方法是使用一元加号将字符串转换为数字。如果成功,则会得到一个求和数,如果没有,则返回NaN并求和。一个NaN会破坏结果,结果为NaN

function not(fn) {
    return function (v) {
        return !fn(v);
    };
}

function sum(array) {
    return array.reduce((a, b) => +a + +b);
}

console.log([[96, ".!asd", 182], ["@#$%", 5, 43], [64, "bd", 48], [2, 3, 5]].map(sum).filter(not(isNaN)));

答案 5 :(得分:-1)

尝试使用 typeof 验证是否正在处理字符串。mdn typeof

答案 6 :(得分:-2)

您可以使用if type(x) == str检查变量x是否为String类型。它是一个内置功能。请参阅官方python文档以了解更多信息。

https://docs.python.org/3/library/functions.html#type