剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

题目描述:

入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

示例:

输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。

思路:

①先定义一个新数组result,然后遍历原来的nums数组,若为奇数则unshift()到新数组result中,反之则pop()到新数组中

unshift()将一个数添加到数组的头部;pop()将一个数添加到数组的尾部!

②通过map函数,判断每个数组元素是否为偶数

代码:

1
2
3
4
5
6
7
8
9
var exchange = function(nums) {
var result = [];
for(let i=0;i<nums.length;i++){
if(nums[i]%2 == 0){
result.push(nums[i])
}
}
return result;
};
1
2
3
4
5
6
7
var exchange = function(nums) {
let arr1=[],arr2=[];
nums.map((a)=>{
a%2!==0?arr1.push(a):arr2.push(a)
})
return arr1.concat(arr2)
}