调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路
遍历数组,判断数组的每个元素是奇数还是偶数,分别存在两个不同的数组里,遍历完成后连接两个数组。
代码
function reOrderArray(array)
{
// write code here
var ji = [];
var ou = [];
array.forEach(function(item){
if(item % 2 ===0){
ou.push(item);
}else{
ji.push(item);
}
})
return ji.concat(ou);
}
知识点
1.forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的
array.forEach(function(currentValue, index, arr), thisValue)
参数 | 描述 |
---|---|
function (currentValue, index, arr) | 必需。 数组中每个元素需要调用的函数。 |
currentValue | 必需。当前元素 |
index | 可选。当前元素的索引值。 |
arr | 可选。当前元素所属的数组对象。 |
thisValue | 可选。传递给函数的值一般用 “this” 值。 |
2.concat()方法
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
arrayObject.concat(arrayX,arrayX,…,arrayX) arrayX该参数可以是具体的值,也可以是数组对象。可以是任意多个。
该方法会返回一个数组,该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。