【问题标题】:remove NaN in my array display在我的数组显示中删除 NaN
【发布时间】:2018-12-02 13:32:59
【问题描述】:

我想请教如何删除数组中的 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;
}

【问题讨论】:

  • 只检查一个元素是否有值,否则返回空字符串,最好是使用三元运算符

标签: javascript arrays nan


【解决方案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,以便于阅读和调试?

【讨论】:

  • 感谢它真的是一个很大的帮助,如果它是一个字符串呢?如何不显示 (,) 逗号?
  • 您可以使用replacenewValue 中的所有逗号替换为空字符串
  • 我的意思是如果数据也是空的,那么显示是逗号,只有如何捕捉它而不是显示逗号
猜你喜欢
  • 2015-05-21
  • 2020-04-21
  • 2012-07-22
  • 2016-08-15
  • 2018-12-21
  • 1970-01-01
  • 2019-01-26
  • 2019-04-15
相关资源
最近更新 更多