如何查看列表并仅计算数字?

时间:2017-02-09 10:03:59

标签: javascript list

如何查看列表并让计算机检查它是否为数字,如果是数字,我想计算并继续直到结束然后显示结果。

例如,如果我有一个数组:

 var myArray = [1,2,a,4];

我做的是我先拆分我的阵列:

var splitted = myArray.toString()split(",").join(" "); 

然后我使用for循环遍历每个分割值并计算它是否为数字(或字符串)然后在相应的框中显示结果:

 for(i=0;i<splitted.length; i+=1)
 {
 if(isNaN(splitted[i])===true)
 {
 document.getElementById("resultWordCount").value = splitted[i];
 }

else
{
document.getElementById("resultNumberCount").value = splitted[i];  

但是使用此代码我会不断获取列表中显示的最后一个数字以及列表中显示的最后一个字符串,以便在我的框中显示结果。我该怎么做才能解决这个问题?

7 个答案:

答案 0 :(得分:0)

您可以查看Function DisplaySomething(ByVal Data As Double) DisplaySomething = "Hi my type is " & TypeName(Data) End Function 并计算。

&#13;
&#13;
Public Function Test(ByVal i As String) As Integer
Test = i
End Function
&#13;
&#13;
&#13;

答案 1 :(得分:0)

var myArray = [1,2,a,4];
var result = 0;
for(var i=0; i < myArray.length; i++) {
  result += !isNaN(+myArray[i]) ? myArray[i] : 0;
}

答案 2 :(得分:0)

var count = 0;

myArray.forEach(function(item){
 if(!isNaN(Number(item))){
   count ++;
  }
});

console.log(count);

答案 3 :(得分:0)

首先,如果你已经有一个数组,为什么要将它转换为字符串,然后将其拆分,然后再将它连接到另一个字符串?你没有循环遍历数组项,而是遍历字符串字符。当您的输入发生变化时,这将导致各种问题。

然后,isNaN(splitted[i])===true检查数组的当前项是否不是数字,所以你应该忽略它们而不是使用它们。

最后,你没有在任何地方做任何总和,只是依次将每个项目分配给“resultNumberCount”标记的值。这就是为什么,在过程结束时你只看到数组中最后一个值(或者,实际上是字符串)

答案 4 :(得分:0)

您可以使用map function来计算integers

的数量
var myArray = [1, 2, 'a', 4];
var numbers = 0;
myArray.map(function (a) {
if (Number(a))
   numbers++;
});
console.log(numbers);

答案 5 :(得分:0)

你不必拆分你的阵列 并且只是连接值

&#13;
&#13;
 var myArray = [1,2,"a",4];
 var countNum = 0;
 var countNaN = 0;
 
 for(i=0;i<myArray.length; i+=1){
  if(isNaN(myArray[i])){
    document.getElementById("resultWordCount").value += myArray[i];
    countNaN++;
    
  }else{
    document.getElementById("resultNumberCount").value += myArray[i];  
    countNum++;
    
  }
}
console.log(countNaN);
console.log(countNum);
&#13;
<input id="resultNumberCount" type="text" disabled >
<input id="resultWordCount" type="text" disabled  >
&#13;
&#13;
&#13;

修改

如果您只想要总数:

&#13;
&#13;
var myArray = [1,2,"a",4];
 var countNum = 0;
 var countNaN = 0;
 
 for(i=0;i<myArray.length; i+=1){
  if(isNaN(myArray[i])){
    
    countNaN++;
    
  }else{
    
    countNum++;
    
  }
}
document.getElementById("resultNumberCount").value = countNum;  
document.getElementById("resultWordCount").value = countNaN;
console.log(countNaN);
console.log(countNum);
&#13;
<input id="resultNumberCount" type="text" >
<input id="resultWordCount" type="text" >
&#13;
&#13;
&#13;

答案 6 :(得分:0)

你可以这样做:

var a = [1, 2, 'c', 4];
console.log(a.filter(function(value){
    return !isNaN(value);
}).length)