如何使用javascript从数组中分离字母和数字

如何使用javascript从数组中分离字母和数字,javascript,Javascript,数组输入为 var a =[1,'a',2,3,'e',4,'r']; 我尝试将这个数组转换为字符串,并检查字符串的长度,如下所示 我想将数组转换为 ['a','e','r',1,2,3,4] 这是正确的做法吗 var a=[1,'a',2,3,'e',4,'r']; var b=a.toString(); 控制台日志(b); var-num,alpha; 对于(变量i=0;i{ if(类型(当前)=“编号”) a_编号。推送(当前); 如果(当前类型)=“字符串”) 一个字推(当

数组输入为

var a =[1,'a',2,3,'e',4,'r'];
我尝试将这个数组转换为字符串,并检查字符串的长度,如下所示

我想将数组转换为

    ['a','e','r',1,2,3,4]
这是正确的做法吗

var a=[1,'a',2,3,'e',4,'r'];
var b=a.toString();
控制台日志(b);
var-num,alpha;
对于(变量i=0;i您可以执行以下操作:

var a=[1,'a',2,3,'e',4,'r'];
var a_word=[];
变量a_数=[];
a、 forEach(当前=>{
if(类型(当前)=“编号”)
a_编号。推送(当前);
如果(当前类型)=“字符串”)
一个字推(当前);
});
var结果=一个单词concat(一个数字);

控制台日志(结果)您可以通过检查数字的增量对数组进行排序

var数组=[1,'a',2,3,'e',4,'r'];
排序((a,b)=>(a的类型=='number')-(b的类型=='number');

console.log(数组)过滤器听起来是个不错的选择

var a=[1,'a',2,3,'e',4,'r'];
var newArr=[];
var num=a.filter(函数(num){
if(isNaN(num))newArr.push(num)
返回!isNaN(+num)
});
console.log([…newArr,…num]);//创建一个新数组
newArr=newArr.concat(num);//或重复使用
console.log(newArr)
//或者只是

console.log(a.sort());//将首先对数字进行排序
您也可以这样做:

const a=[1,'a',2,3,'e',4,'r']
常数b=a.reduce((附件,项目)=>{
如果(项目类型=‘编号’){
附件推送(项目)
}否则{
附件取消移位(项目)
}
返回acc
},[])。排序((a,b)=>a>b)

console.log(b)
您可以使用

设a=[1,'a',2,3,'e',4,'r'];
a、 排序((b,c)=>isNaN(c)-isNaN(b)| | String(b).localeCompare(String(c)))

控制台日志(a)
是否也应该按类型进行分隔或排序?您可以尝试按其ascii代码进行排序。append不是正确的javascript。你只需要使用一个过滤器或map@valli-您也要排序吗?i、 e.如果输入是
array=[4,'a',2,3,'r',1,'e']然后结果应该是
['a','r','e',4,2,3,1]
['a','e','r',1,2,3,4]
?非常感谢!!你是传奇人物。更简洁地说:
array.sort((a,b)=>(+a===+a)-(+b==+b))