Javascript 如何提升奇数并保持偶数不变
正如您在我的代码中所看到的,奇数被提升,而偶数被消除。我希望偶数保持不变。预期的日志将是Javascript 如何提升奇数并保持偶数不变,javascript,Javascript,正如您在我的代码中所看到的,奇数被提升,而偶数被消除。我希望偶数保持不变。预期的日志将是[1,3,2,8,5,4] 函数排序(数组){ 让sortedNumber=array.sort(); 设newArray=[]; for(设i=0;inum%2==1); 排序((a,b)=>a-b); 返回数组.map( num=>num%2==1?赔率.shift():num ); } log(sortArray([5,3,2,8,1,4])我不确定“ascended”是什么意思,但例如,如果您想在保
[1,3,2,8,5,4]
函数排序(数组){
让sortedNumber=array.sort();
设newArray=[];
for(设i=0;i log(sortArray([5,3,2,8,1,4])代码>我认为最清晰的方法是将所有奇数提取到一个单独的数组中,对该数组进行排序,然后将它们插入到原始数组中:
函数排序(数组){
常量赔率=数组。筛选器(num=>num%2==1);
排序((a,b)=>a-b);
返回数组.map(
num=>num%2==1?赔率.shift():num
);
}
log(sortArray([5,3,2,8,1,4])
我不确定“ascended”是什么意思,但例如,如果您想在保持偶数不变的同时为每个奇数添加0.1,您可以简单地添加一个else
语句,如下所示
请注意,除非您希望数字按字母顺序排序(这是.sort
方法的默认值),否则必须提供numericSort
功能
constnumericsort=(a,b)=>a-b;
功能排序(arr){
常数
SortedNumber=arr.sort(numericSort),
newArray=[];
for(分拣数){
如果(num%2!==0){newArray.push(num+0.1);}
else{newArray.push(num);}
}
返回新数组;
}
log(sortArray([5,31,20,8,1,4]))