Javascript 如何对JS数组进行排序,该数组将单词按与原始数组相同的顺序放在前面,将数字排序在后面
假设我有这个数组:Javascript 如何对JS数组进行排序,该数组将单词按与原始数组相同的顺序放在前面,将数字排序在后面,javascript,Javascript,假设我有这个数组: [ 'say', 'burger', '2000', '1000', '3000', 'full', 'no' ] 我希望结果是: ['say', 'burger', 'full', 'no', '1000', '2000', '3000'] 请注意,单词都在前面,但顺序与原始数组相同,后面的数字已排序。如何执行此操作?您可以检查NaN并将此字符串移到顶部 var数组=['say','burger','2000','1000','3000','full','no'];
[ 'say', 'burger', '2000', '1000', '3000', 'full', 'no' ]
我希望结果是:
['say', 'burger', 'full', 'no', '1000', '2000', '3000']
请注意,单词都在前面,但顺序与原始数组相同,后面的数字已排序。如何执行此操作?您可以检查
NaN
并将此字符串移到顶部
var数组=['say','burger','2000','1000','3000','full','no'];
sort((a,b)=>isNaN(b)-isNaN(a)| a-b);
console.log(数组)代码>
const arr=['say','burger','2000','1000','3000','full','300','no']
//[‘说’、‘汉堡’、‘全’、‘不’、‘1000’、‘2000’、‘300’、‘3000’]
常量stringArr=[];
常数intArr=[]
arr.map(el=>{
如果(!isNaN(el))
内推力(el);
其他的
纵向推力(el)
})
console.log([…stringArr,…intArr.sort((a,b)=>a-b)])
将数字字符串剥离到另一个数组中,进行排序,然后连接。有示例吗?请编辑您的问题,以包含到目前为止编写的代码。如果你被难倒了,MDN是一个很好的起点。很好的解决方案(+1),但是这是按数字还是按字典顺序对“数字”进行排序?OP在这一点上可能还不清楚。-
强制操作数为数字。rest参数(+1)的使用很好,但您intArray
是一个字符串数组,因此可能会被命名错误,并且也会被排序,因此“300”
在“1000”
之前,这可能是不希望的。谢谢,尼娜的答案更好,我很惊讶——这里没有300
这是3000
我知道“300”
不在数组中——但如果它在数组中,那么它会被放在“1000”之后。在OP的数组中,数字排序与lex排序相同,但在其他情况下,它们可能会出现分歧。