Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对JS数组进行排序,该数组将单词按与原始数组相同的顺序放在前面,将数字排序在后面_Javascript - Fatal编程技术网

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排序相同,但在其他情况下,它们可能会出现分歧。