使用Javascript

时间:2018-04-04 07:14:48

标签: javascript sorting ecmascript-6

我正在使用数值和" - "对数组进行排序。作为一个角色。 我的数组是

var arr = [5, 3, 10, "-", 2, "-"]

我想要用数字值排序,然后是所有" - "字符。

必填结果: -

final array = [10, 5, 3, 2, "-", "-"]

我尝试过: -

var array_with_chars= arr.filter(function( element ) {
    return element.name == '-';
});
var array_with_nums= arr_obj.filter(function( element ) {
    return element.name !== '-';
});

array_with_nums.sort(function(a, b) {
  return b.name - a.name;
});

for(var i = 0; i< array_with_chars.length; i++){
    array_with_nums.push(array_with_chars[i])
}

有没有什么好方法可以在单次迭代中对此进行排序?

1 个答案:

答案 0 :(得分:2)

您可以检查NaN并将此项目移至最后。

var array = [5, 3, 10, "-", 2, "-"];

array.sort((a, b) => isNaN(a) - isNaN(b) || b - a);

console.log(array);