在我的阵列显示中删除NaN

时间:2018-06-23 06:42:27

标签: javascript arrays nan

我想询问帮助如何删除数组中的NaN值。每次我点击没有数据的提交按钮时,都会显示一个NaN值。

数字排序变量:

var array = [];
var arrayasc = [];
var arraydsc = [];
function myFunction(){
    var newArray = parseInt(document.getElementById("number").value);
    array.push(newArray);
    arrayasc.push(newArray);
    arraydsc.push(newArray);
    if
    //entered numbers dislay here
    document.getElementById("demo").innerHTML = array;
    console.log(array);

    //entered numbers in ascending order
    mySort_asc(arrayasc);
    document.getElementById("asc").innerHTML = array;
    console.log(mySort_asc(arrayasc));

    //entered numbers in descending order
    mySort_dsc(arraydsc);
    document.getElementById("dsc").innerHTML = array;
    console.log(mySort_dsc(arraydsc));
}

用于按升序对数字进行排序的功能

function mySort_asc(arr){
    for(var i = 0; i < array.length; i++) {
        var temp = array[i];
        var b = i - 1;
        while (b >= 0 && array[b] > temp) {
          array[b + 1] = array[b];
          b--;
        }
        array[b + 1] = temp;
      }
      return array;
}

用于按降序对数字进行排序的功能

function mySort_dsc(arr){
    for(var i = 0; i < array.length; i++) {
        var temp = array[i];
        var b = i - 1;
        while (b >= 0 && array[b] < temp) {
          array[b + 1] = array[b];
          b--;
        }
        array[b + 1] = temp ;
      }
      return array;
}

1 个答案:

答案 0 :(得分:1)

您的语法无效

if
//entered numbers dislay here
document.getElementById("demo").innerHTML = array;

,但只需检查新值是否为数字,如果不是,则立即返回而无需更改HTML中的任何内容:

function myFunction(){
  var newArray = parseInt(document.getElementById("number").value);
  if (Number.isNaN(newArray)) return;

您还可以考虑将变量命名为与变量代表的名称相对应。例如,newArray实际上只是一个数字,而不是数组。为了便于阅读和调试,也许将其称为newValue