Javascript 组isNaN()代码

Javascript 组isNaN()代码,javascript,Javascript,我有多个输入,准确地说是16个。我有一段很长的代码,它使用isNaN()检查每个输入: var Qs1 = 0; var Qs2 = 0; var Qs3 = 0; var Qs4 = 0; var Qs5 = 0; var Qs6 = 0; var Qs7 = 0; var Qs8 = 0; var Qs9 = 0; var Qs10 = 0; var Qs11 = 0; var Qs12 = 0; var Qs13 = 0; var Qs14 = 0; var Qs15 = 0; var Q

我有多个输入,准确地说是16个。我有一段很长的代码,它使用isNaN()检查每个输入:

var Qs1 = 0;
var Qs2 = 0;
var Qs3 = 0;
var Qs4 = 0;
var Qs5 = 0;
var Qs6 = 0;
var Qs7 = 0;
var Qs8 = 0;
var Qs9 = 0;
var Qs10 = 0;
var Qs11 = 0;
var Qs12 = 0;
var Qs13 = 0;
var Qs14 = 0;
var Qs15 = 0;
var Qs16 = 0;

if(isNaN(Qs1)) {
      Qs1 = 0;
    }

    if(isNaN(Qs2)) {
      Qs2 = 0;
    }

    if(isNaN(Qs3)) {
      Qs3 = 0;
    }

    if(isNaN(Qs4)) {
      Qs4 = 0;
    }

    if(isNaN(Qs5)) {
      Qs5 = 0;
    }
等等等等

问题是变量“Qs_”需要根据输入而改变。例如:如果输入为1,则Qs_uu运行总和:Qs*2*3; (不是实际的代码,只是一个示例)

有没有办法压缩代码中的isNaN()部分


提前感谢。

将变量存储在数组中并循环:

让qs=[]
qs.push(0,0,0,'a')
函数(q,i){
如果(isNaN(q))qs[i]=0
})

console.log(qs)
@比尔是对的-使用数组将使这更容易

所以如果你把所有的Q都定义为:

var qs = [0,0,'H',0,'E',0,'Y',0,0,0,0,0,0];
然后你可以做:

qs = qs.map(function(q){ return isNaN(q) ? 0 : q })
这将返回
[0,0,0,0,0,0,0,0,0,0,0,0,0,0]


这里有一个关于JSBin的实例:

您可以使用隐式转换来使用一元数
+
进行编号,并检查真实性。否则返回零

我建议只使用以小写字符开头的变量。大写开头通常留给可以用作实例或类(基本相同)的函数

var qs1=0,
qs2=-1,
qs3='',
qs4=‘q’,
数组=[qs1,qs2,qs3,qs4].map(函数(a){return+a | | 0;});

console.log(数组)您可以为数据使用数组。它易于分析和维护。当您有多个具有相同名称/值类型的变量时,只需将它们存储在
数组中即可<代码>变量Qs=新数组(17);qs[1]=0但这会压缩代码吗?看起来它实际上不会减少16行,所以谢谢你,但它没有回答我问题的isNaN()部分。很好。非常感谢:)