function reOrderArray(array) { let odd = [] let even = [] array.forEach(num => { if (num % 2 === 0) { even.push(num) } else { odd.push(num) } }) return [...odd, ...even] // write code here }
function reOrderArray(array) { let lastOddIdx = -1 let len = array.length for(let i = 0; i< len; i++) { let num = array[i] if (num % 2 !== 0) { // 删除 array.splice(i, 1) // 变更顺序 array.splice(lastOddIdx + 1, 0, num) lastOddIdx++ } } return array }
function reOrderArray(array) { //输入一个整数数组,实现一个函数来调整该数组中数字的顺序, //使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分, //并保证奇数和奇数,偶数和偶数之间的相对位置不变。 let odds = []; let evens = []; for (let i = 0; i < array.length; i++) { if (array[i] % 2 == 1) { //res.unshift(array[i]); odds.push(array[i]); } else { //res.push(array[i]); evens.push(array[i]); } } return odds.concat(evens); } module.exports = { reOrderArray : reOrderArray };
function reOrderArray(array) { // write code here //将奇数和偶数进行数组分离 在将两个数组拼接在一起 var odd = []; var even = []; array.forEach((item,index)=>{ //if判断法 /* if(item % 2 ==0){ even.push(item); }else{ odd.push(item) }8*/ //三目运算法 item % 2 ==0 ? even.push(item):odd.push(item); }); var result =odd.concat(even) ; return result; }
/** * 我的解题思路: * 1.看起来是个数组排序问题,那么怎么用一行代码解决呢 * 2.使用Array.prototype.sort方法即可实现 * * @param {*} array */ function reOrderArray(array) { // write code here return array.sort((a, b) => !(a % 2) && b % 2); } /** * 排序的解题思路: * 1.排序的方法很多种,这里选用插入排序的方法 * 2.从左到右依次查找奇数 * 3.找到奇数后将其一步步前移 * * @param {*} array */ function insertReOrderArray(array) { // write code here let k = 0; for (let i = 0; i < array.length; i++) { if (array[i] % 2) { let j = i; while (j > k) { let temp = array[j]; array[j] = array[j - 1]; array[j - 1] = temp; j--; } k++; } } return array; } /** * 社区TOP的解题思路: * 1.换个思路,使用空间换取时间的做法 * 2.先找出奇数,再找出偶数,组合成新的数组 * * @param {*} array */ function topReOrderArray(array) { // write code here const odd = array.filter(n => n % 2 === 1); const even = array.filter(n => n % 2 === 0); return odd.concat(even); }
function reOrderArray(array) { // write code here var arr1 = []; var arr2 = []; for (var i = 0;i < array.length;i++){ if(array[i] % 2 == 0){ arr2.push(array[i]); }else{ arr1.push(array[i]); } } return arr1.concat(arr2); }
function reOrderArray(array) { // write code here if (!array || !array.length) return; let cur = -1; for (let i = 0; i < array.length; i++) { if (array[i] % 2 === 1) { const oddVal = array[i]; let even; for (even = i - 1; even > cur; even--) { array[even + 1] = array[even]; } array[even + 1] = oddVal; cur++; } } }另如果题目把奇偶值改成奇偶下标的话,只需把 array[i] % 2 === 1 改成 i % 2 === 1 就可以了。
function reOrderArray(array) { // write code here let array1 = []; let array2 = []; for(let i=0; i<array.length; i++){ if(array[i]%2===0){ array2.push(array[i]); }else{ array1.push(array[i]); } } return array1.concat(array2); }