Javascript 带字符串的JS排序数组&;字符串数
我试图用自定义值对数组进行排序,按其整数值排序。 这是我的阵列:Javascript 带字符串的JS排序数组&;字符串数,javascript,sorting,Javascript,Sorting,我试图用自定义值对数组进行排序,按其整数值排序。 这是我的阵列: [ 'a>46', 'a>86', 'h>78' ] 和期望输出: [ 'a>46', 'h>78', 'a>86' ] 注意:在我的数组中可以找到的最大值是90 我试着这样做: var newarr = []; var max = 91; for (let u = 0; u < array.length; u++) { var nm
[ 'a>46', 'a>86', 'h>78' ]
和期望输出:
[ 'a>46', 'h>78', 'a>86' ]
注意:在我的数组中可以找到的最大值是90
我试着这样做:
var newarr = [];
var max = 91;
for (let u = 0; u < array.length; u++) {
var nmbr = parseInt(array[u].replace(/\D/g,'')); // get integer of array element
if (nmbr < max) { // if element is lower than current highest value
max = nmbr;
newarr[0] = array[u]; // assign it to the beggining of new array
} else { // else put it at as the next newarr element
newarr[newarr.lenght+1] = array[u];
}
}
var newarr=[];
var max=91;
for(设u=0;u
输出:
[ 'a>46', <1 empty item>, 'a>86' ]
['a>46','a>86']
JavaScript附带了一个用于排序数组的内置方法
const数组=['a>46','a>86','h>78'];
array.sort((a,b)=>{
a=Number.parseInt(a.replace(/\D/g',),10);
b=Number.parseInt(b.replace(/\D/g',),10);
返回a-b;
});
console.log(数组)代码>我建议使用Array.prototype.sort()
输出[“a>46”、“h>78”、“a>86”]
如果你想了解更多关于这是如何工作的,我建议你看看这里的compare
函数示例
基本上:如果返回零,则a
和b
相等。如果返回负数,则表示a
小于b
。如果返回的正数表示a
大于b
以达到预期的reult,请使用下面使用数组排序函数的选项
var数组=['a>46','a>86','h>78']
console.log(array.sort((a,b)=>a.substring(2)-b.substring(2))
应该是什么minutsy
你能添加一个片段吗?请注意,这个答案使用隐式转换,乍一看可能会让人困惑。根据这样的说法,比较是在“>”之后按整数值进行的,使用parseInt也可以,即使不使用它,它也可以工作,因为隐式转换正如你在本著作中提到的,但是替换方法返回“>46”,其中包含<代码> >代码>符号。可能需要考虑这种情况<代码> var数组= [“A2> 46”,“H1>78”,“A0> 86”] < /代码>
var array = ["a>46", "h>78", "a>86"]
array.sort(function(a, b) {
var number_a = parseInt(a.replace(/\D/g,''));
var number_b = parseInt(b.replace(/\D/g,''));
return number_a - number_b;
});