Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 如何使用localecompare对包含负值的数字数组进行排序?_Javascript_Arrays - Fatal编程技术网

Javascript 如何使用localecompare对包含负值的数字数组进行排序?

Javascript 如何使用localecompare对包含负值的数字数组进行排序?,javascript,arrays,Javascript,Arrays,我试图将数组从最低值排序到最高值 下面的示例显示它已经以这种方式进行了排序 但是,当我这样做时: var数组=[“-394”、“-275”、“-156”、“-37”、“82”、“201”、“320”、“439”、“558”、“677”、“796”]; array.sort(函数(a,b){ 返回a.localeCompare(b,未定义{ 数字:真 }) }); console.log(数组)因为数组项可以直接强制为数字,为什么不这样做呢 var数组=[“-394”、“-275”、“-156

我试图将数组从最低值排序到最高值

下面的示例显示它已经以这种方式进行了排序

但是,当我这样做时:

var数组=[“-394”、“-275”、“-156”、“-37”、“82”、“201”、“320”、“439”、“558”、“677”、“796”];
array.sort(函数(a,b){
返回a.localeCompare(b,未定义{
数字:真
})
});

console.log(数组)因为数组项可以直接强制为数字,为什么不这样做呢

var数组=[“-394”、“-275”、“-156”、“-37”、“82”、“201”、“320”、“439”、“558”、“677”、“796”];
sort(函数(a,b){返回a-b});

console.log(数组)因为数组项可以直接强制为数字,为什么不这样做呢

var数组=[“-394”、“-275”、“-156”、“-37”、“82”、“201”、“320”、“439”、“558”、“677”、“796”];
sort(函数(a,b){返回a-b});

console.log(数组)只需使用
排序
-您的所有项目都可以隐式转换为数字

var数组=[“-394”、“-275”、“-156”、“-37”、“82”、“201”、“320”、“439”、“558”、“677”、“796”];
const res=array.sort((a,b)=>a-b);
控制台日志(res)

。作为控制台包装{max height:100%!important;top:auto;}
只需使用
排序
-所有项目都可以隐式转换为数字

var数组=[“-394”、“-275”、“-156”、“-37”、“82”、“201”、“320”、“439”、“558”、“677”、“796”];
const res=array.sort((a,b)=>a-b);
控制台日志(res)

.as console wrapper{max height:100%!important;top:auto;}
有趣的是,我实际上试图在数组中找到“接近零的值”(在本例中是最接近零的负值)(
localeCompare
步骤只是该过程中的一个步骤),因此“以错误的方式进行”似乎为我提供了一种通过引用“未正确”排序数组的第一个值来获得所需值的方法。字典排序似乎将值放在最接近零的位置(包括负值)在数组的开头。我相信有更好的方法可以做到这一点,但还是很高兴知道。有趣的是,我实际上是在数组中查找“接近零的值”(在本例中是最接近零的负值)(
localeCompare
步骤只是该过程中的一个步骤),所以“意外排序”“以错误的方式执行”的结果似乎为我提供了一种方法,通过引用“不正确”排序数组的第一个值来获得所需的值。字典排序似乎将最接近零的值(包括负值)放在数组的开头。我相信有更好的方法可以做到这一点,但还是很高兴知道。
var array = ["-394","-275","-156","-37","82","201","320","439","558","677","796"];