说我有这个数组:
[ 'say', 'burger', '2000', '1000', '3000', 'full', 'no' ]
我希望得到这样的结果:
['say', 'burger', 'full', 'no', '1000', '2000', '3000']
请注意,单词全都位于前面,但顺序与原始数组相同,后面的数字则排序。我该怎么做?
答案 0 :(得分:3)
您可以检查NaN
并将此字符串移到顶部。
var array = ['say', 'burger', '2000', '1000', '3000', 'full', 'no'];
array.sort((a, b) => isNaN(b) - isNaN(a) || a - b);
console.log(array);
答案 1 :(得分:1)
const arr = ['say', 'burger', '2000', '1000', '3000', 'full', '300', 'no']
//['say', 'burger', 'full', 'no', '1000', '2000','300','3000']
const stringArr = [];
const intArr = []
arr.map(el => {
if (!isNaN(el))
intArr.push(el);
else
stringArr.push(el)
})
console.log([...stringArr, ...intArr.sort((a, b) => a - b)])