Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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 如何提升奇数并保持偶数不变_Javascript - Fatal编程技术网

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;ilog(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]))