Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript数组项到数字_Javascript_Arrays - Fatal编程技术网

Javascript数组项到数字

Javascript数组项到数字,javascript,arrays,Javascript,Arrays,我制作了一个程序,对用户输入的数字进行排序。问题是,当我插入一个空格时,它作为数字0存储在数组中。我试图设置一些条件来防止这种情况发生,但似乎没有任何效果。有解决办法吗? 下面是我的一段代码,我认为错误是在这里发生的,应该设置一些条件: stringArray=userInput.value.split(“”); numArray=stringArray.map(数字)由于Javascript本质上是弱类型语言,每当您在代码中映射值并将其强制为数字时,JS都会尝试将其转换为兼容类型。因此,空空间

我制作了一个程序,对用户输入的数字进行排序。问题是,当我插入一个空格时,它作为数字0存储在数组中。我试图设置一些条件来防止这种情况发生,但似乎没有任何效果。有解决办法吗? 下面是我的一段代码,我认为错误是在这里发生的,应该设置一些条件:
stringArray=userInput.value.split(“”);

numArray=stringArray.map(数字)

由于Javascript本质上是弱类型语言,每当您在代码中映射值并将其强制为数字时,JS都会尝试将其转换为兼容类型。因此,空空间将转换为0

在这种情况下,您可以执行多种操作。最简单的方法是在映射之前去掉任何空格

我建议在映射之前过滤数组,例如:

stringArray.filter(function(value) {
  return value.trim() !== '';
}).map(Number);
另一个想法是按照注释中的建议,使用
RegExp
;)去掉前面的空格

只需使用更严格的parseInt(在本例中返回NaN),即可进行筛选:

numArray=numArray.filter(e=>!isNaN(e));

userInput.value.replace(/\s{2,}/g',).split(“”)核武器清空first@dandavis如果用户以spacemybad开头,则不能这样做(duh):
userInput.value.trim().split(/\s+/)使用parseInt转换为字符串。当
split()
只会生成stringsYep数组时,它应该返回NaNdon,但我不明白为什么需要
typeof
,你是对的。不必要的健康检查。调整了答案。或者简单地
stringArray.filter(/./.test,/\S/).map(数字):pparSent()是在JS中将字符串转换为数字的最糟糕的方法,并且它不会过滤掉空字符串
window.isNaN
也不会有多大帮助:
[“3424”,isNaN.filter(isNaN)。join(0)==“尽管n=>Number(n)?@dandavis您的示例与上面的代码无关。@lee kowalkowski有一个区别。
numArray=numArray.filter(e=>!isNaN(e));