Javascript 从字符串中查找最接近0的数字?

Javascript 从字符串中查找最接近0的数字?,javascript,Javascript,我希望从由“”分隔的数字组成的字符串输入中找到最接近0的数字。我用下面的方式对它进行了编码,它在第一行temps变量上工作,但在第二行temps变量中没有正确运行。这里少了什么 <script type="text/javascript"> //var temps = "9 -2 -8 4 5"; // get 2 & correct var temps = "-12 -5 -137"; // get -12 & not correct ,expected 5

我希望从由“”分隔的数字组成的字符串输入中找到最接近0的数字。我用下面的方式对它进行了编码,它在第一行
temps
变量上工作,但在第二行
temps
变量中没有正确运行。这里少了什么

<script type="text/javascript">

//var temps = "9 -2 -8 4 5"; // get 2 & correct
var temps = "-12 -5 -137";   // get -12 & not correct ,expected 5
var temp = temps.split(" ");
var closest = parseInt(temp[0]);
for(var i = 0;i < temp.length ;i++){
    var t = Math.abs(temp[i]);   
    console.log(typeof closest) ; //number : same type
    if(closest > t) {
        closest = t;
    }
}
console.log(closest);
</script>

//var temps=“9-2-8 4 5”//得到2&正确答案
var temps=“-12-5-137”//获取-12&不正确,预期为5
var temp=临时拆分(“”);
var=parseInt(温度[0]);
对于(变量i=0;it){
最近值=t;
}
}
控制台日志(最近);

您可以使用自定义排序功能,然后选择1个值

函数getClosestToZero(str){ 返回str.split(“”).sort(函数(a,b){ var a1=数学绝对值(a); var b1=数学绝对值(b); 返回a1>b1?1:a1log(getClosestToZero(temps))将-12存储在

最近变量

当你这么做的时候

-12>5
这是错误的,所以你的作业

closest =t;
没有被执行。它对第一个输入有效,因为9被存储为最接近的变量。在这一步中,您可以将绝对值存储为最接近的变量

var closest = parseInt(Math.abs(temp[0]));
换线就行了

var closest = parseInt(temp[0]);


你刚刚错过了第一个索引的绝对值。

@Rajesh
'-1.01.split(“”.sort()[0]
@WangYudong我已经使用自定义排序添加了一个答案。
temps.split(“”).reduce((a,b)=>Math.min(Math.abs(a),Math.abs(b))只是一个很小的提示,您可以从1开始循环索引,因为0已经被设置为最接近的。
var closest = Math.abs(parseInt(temp[0]));