基本思路:利用冒泡的思想,碰到奇数则往前移
利用nthOdd来记录当前是第n个奇数,nthOdd初始化为-1,碰到第一个奇数,nthOdd自增为0,刚好对应数组下标。
循环一趟,若碰到奇数,则nthOdd+1,接着把该奇数前面的偶数都往后移,将该奇数放到第nthOdd位。
function reOrderArray( array ) { // nthOdd用来记录当前是第几个奇数---对应数组下标 let nthOdd = -1; for(let i = 0; i < array.length; i++){ if(array[i] % 2 == 1){ nthOdd++; let curOdd = array[i]; // 如果是个奇数,就把前面的偶数往后移一位,腾出来的位置即oddNth位,放入该奇数 for(let j = i; j > nthOdd; j--){ array[j] = array[j-1]; } array[nthOdd] = curOdd; } } return array; }