数组:调整数组顺序使奇数位于偶数前面【两种方法,思路与知识点总结】"/>
JavaScript 数组:调整数组顺序使奇数位于偶数前面【两种方法,思路与知识点总结】
描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
示例1
输入:[1,2,3,4] 返回值:[1,3,2,4]
示例2
输入:[2,4,6,5,7] 返回值:[5,7,2,4,6]
方法一:
思路:将奇数和偶数分别推入两个数组,最后再将数组相连
function reOrderArray( array ) {let arr1=[];let arr2=[];for(let i=0;i<array.length;i++){if(array[i]%2===0) arr1.push(array[i]);else arr2.push(array[i]);}return arr2.concat(arr1);
}
本题所用的知识点:
1. 数组长度:arr.length
2. Array对象的push()方法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
arrayObject.push(newelement1,newelement2,....,newelementX)
参数说明:
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
newelementX 可选。可添加多个元素。
返回值
把指定的值添加到数组后的新长度。
说明
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
3. Array对象的concat()方法
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数说明:
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
arr1=[1,2,3];
arr2=[4,5,6];
console.log(arr1.concat(arr2));//[1,2,3,4,5,6]
方法二:sort()排序
function exchange (nums) {return nums.sort((a,b)=>b%2-a%2);
};
思路:利用sort()排序方法,sort(sortby)其中参数sortby是是一个可以自己写的比较函数。比较函数如下:
function(a,b){return ...
}
若,返回值大于0,则a,b位置交换,否则位置不交换。
更多推荐
JavaScript 数组:调整数组顺序使奇数位于偶数前面【两种方法,思路与知识点总结】
发布评论