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"];