我想询问帮助如何删除数组中的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;
}
答案 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
?