为什么我从数学.max得到 NaN
Why do I get NaN from Maths.max?
所以我试图从以下测试用例中获取最高数字:
Test.assertEquals(highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"), "542 -214");
Test.assertEquals(highAndLow("1 -1"), "1 -1");
Test.assertEquals(highAndLow("1 1"), "1 1");
到目前为止,我有以下内容:
function highAndLow(numbers){
var numbers;
var str;
numbers = numbers.split(' ');
str = numbers.toString();
var a = Math.max(str);
return a;
}
我得到NaN
.我知道 .split 工作正常。有人可以帮我吗?
Math.max
接受一系列数字或数字作为字符串(Math.max
每个参数在内部调用toNumber
)。代码中不需要number.toString()
。
如果要对任意数量的参数使用 Math.max
,可以使用 apply
。
Math.max.apply(null, numbersArray);
或使用 spread 运算符将数组作为参数展开。
Math.max(...numbersArray);
Math.max
期望传递多个参数,其中每个参数都是一个数字。您正在向其传递一个字符串。
您可能想要Math.max.apply(Math, numbers)
它允许您传递参数数组。
当你拆分字符串时,我们得到一个字符串数组。我们需要让它成为数字数组。为此,map(Number)
.然后使用以下命令。
function highAndLow(numbers){
var numbers;
var str;
numbers = numbers.split(' ').map(Number);
var a = Math.max.apply(Math, numbers);
return a;
}
相关文章:
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 我能得到正确的格式吗
- 为什么我得到错误IE修剪方法是't支持
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- 如何防止Math.max()返回NaN
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Android在webview中加载带有javascript的html文件,得到Uncaught ReferenceEr
- 微风得到的是实体而不是对象的集合
- spring和angularJS(我得到了类似HTTP状态404的错误)
- I'我得到这个.get()在ember中未定义
- Math.min()和Math.max()之间有什么区别?在Javascript中
- 得到"未定义不是函数“;使用显示原型图案时出错
- reducers在redux中得到Function not Object,what'it’他错了
- JS:从整个数组中每次得到5个项目,并得到平均值
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- 绑定的角度ng-max问题
- 为什么我从数学.max得到 NaN