我只想对奇数进行排序而不移动偶数。例如,当我写:
sortArray([5, 3, 2, 8, 1, 4])
预期结果是:
[1, 3, 2, 8, 5, 4]
我是 JavaScript 新手,在互联网上遇到了一个令我困惑的挑战。我通常不会在互联网上发布请求解决方案,但我已经尝试了几个小时,我想在 JavaScript 中学习这个概念。
挑战指出:
你有一个数字数组。
您的任务是按升序对奇数进行排序,但偶数必须在其位置上。
零不是奇数,你不需要移动它。如果有空数组,则需要返回它。
到目前为止,这是我的代码,请放轻松,我正处于编程的初级阶段。
function sortArray(array) {
let oddNums = [];
for(let i = 0; i < array.length; i++) {
if(array[i] % 2 !== 0) {
oddNums.push(array[i]);
}
}
oddNums = oddNums.sort((a,b)=> a-b);
array.concat(oddNums);
array = array.sort((a,b) => a-b);
return array;
}
您可以为奇数索引采用一个辅助数组,为奇数数字采用另一个辅助数组,对它们进行排序并将它们应用回原始数组先前存储的索引。
var array = [5, 3, 2, 8, 1, 4],
indices = [];
array
.filter((v, i) => v % 2 && indices.push(i))
.sort((a, b) => a - b)
.forEach((v, i) => array[indices[i]] = v);
console.log(array);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)