说我有一个像这样的数组:
["a", "bb", 1, 2, "z", 4, 3]
我希望结果数组是这样的:
["a", "bb", "z", 1, 2, 3, 4]
我该怎么写?我将其作为谓词:
export const someBrokenSort = (option1, option2) => {
const numberOption1 = Number(stripCommas(option1));
const numberOption2 = Number(stripCommas(option2));
if (numberOption1 < numberOption2 || isNaN(numberOption1)) return -1;
if (numberOption1 > numberOption2 || isNaN(numberOption2)) return 1;
return 0;
};
但这结果是这样的:
["z", "bb", "a", 1, 2, 3, 4]
最佳答案
您可以检查类型并将字符串移到顶部。
var array = ["a", "bb", 1, 2, "z", 4, 3];
array.sort((a, b) =>
(typeof a === 'number') - (typeof b === 'number') ||
a - b
);
console.log(array);