首页 > 其他分享 >一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置?

一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置?

时间:2023-08-14 15:46:01浏览次数:27  
标签:奇数 偶数 var place 数组 升序 array odd

一个含有奇数和偶数的数组,在js中如何对它进行排序,使得其中奇数升序,偶数还在原来的位置?

ZWMLLL

于 2019-05-09 12:00:00 发布

1222
收藏 1
文章标签: JS
版权
思路:我们可以返回数组array中的奇数,形成一个新的奇数odd数组(利用filter()返回),同时在建立一个位置place数组来保存每个奇数的位置。然后对奇数odd数组进行排序,再根据位置place数组中每个元素的值,把排序完以后的odd数组中的元素重新添加到数组array中。

function sortArry(array) {
//构建一个保存奇数位置的数组
var place = new Array();
//返回数组中的奇数,构成一个新的数组
var odd = array.filter(function (item, index, array) {
if (item % 2 != 0) {
place.push(index);
return item;
}
});
//对奇数数组进行排序(冒泡排序)
for (var i = 0; i < odd.length - 1; i++) {
for (var j = 0; j < odd.length - i - 1; j++) {

if (odd[j] > odd[j + 1]) {
var temp;
temp = odd[j];
odd[j] = odd[j + 1];
odd[j + 1] = temp;
}
}
}
//根据place数组,把拍好的奇数数组放入原数组中
for (var t = 0; t < odd.length; t++) {
array[place[t]] = odd[t];
}
//返回数组
return array;
}
console.log(sortArry([5, 3, 2, 8, 1, 4])); // 结果: [ 1, 3, 2, 8, 5, 4 ]

 


————————————————
版权声明:本文为CSDN博主「ZWMLLL」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zwmlll/article/details/90027065

标签:奇数,偶数,var,place,数组,升序,array,odd
From: https://www.cnblogs.com/tomcat2022/p/17628806.html

相关文章

  • c语言:输出1~100之间的奇数
    方法一:用for#include<stdio.h>intmain(){ inti=1;intp=0;for(i=1;i<=100;i++){ p=i%2; if(p==1) printf("%d",i); }return0;}方法二:用while#include<stdio.h>intmain(){inti=1;while(i<=1......
  • 力扣---23. 合并 K 个升序链表
    给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->......
  • Java入门题-判断输入数字是奇数还是偶数
    重要:需要引入Scanner方法importjava.util.Scanner; 代码:主要是通过求余方式处理解决 Scannerget_number=newScanner(System.in);intgetNumber=get_number.nextInt();if(getNumber%2==0){System.out.println(getNumber+"为偶数");}else{System.o......
  • 2023-08-02:给定一棵树,一共有n个点, 每个点上没有值,请把1~n这些数字,不重复的分配到二叉
    2023-08-02:给定一棵树,一共有n个点,每个点上没有值,请把1~n这些数字,不重复的分配到二叉树上,做到:奇数层节点的值总和与偶数层节点的值总和相差不超过1。返回奇数层节点分配值的一个方案。2<=n<=10^5。来自腾讯音乐。答案2023-08-02:大致步骤如下:1.计算出1到n的总和s......
  • 2023-08-02:给定一棵树,一共有n个点, 每个点上没有值,请把1~n这些数字,不重复的分配到二叉
    2023-08-02:给定一棵树,一共有n个点,每个点上没有值,请把1~n这些数字,不重复的分配到二叉树上,做到:奇数层节点的值总和与偶数层节点的值总和相差不超过1。返回奇数层节点分配值的一个方案。2<=n<=10^5。来自腾讯音乐。答案2023-08-02:大致步骤如下:1.计算出1到n的总和sum。2.确......
  • 传奇数据库dbc2000如何卸载呢?
    在之前的文章里,多多亲笔写了dbc2000数据库安装、汉化、破解视频教程,今天给大家写一个一dbc2000如何卸载的图文教程,其实对于软件的卸载和安装是差不多的,只要看得懂中文的都能够完成,只是完整的时间不一样,但我可不是为了写一篇如何卸载DBC2000的,而是另有作用的。如果你的电脑上安装了3......
  • 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(简单)
    题目:classSolution{public:vector<int>exchange(vector<int>&nums){for(inti=0,j=nums.size()-1;i<j;i++){if(nums[i]%2==0){//从i前开始,遇到偶数开始处理while(nums[j]%2==0&&am......
  • python下表为偶数的字符串
    如何实现“python下标为偶数的字符串”1.概述在Python中,字符串是不可变的,可以通过下标访问字符串的各个字符。为了实现提取下标为偶数的字符串,我们可以采取以下步骤:输入一个字符串;遍历字符串,提取下标为偶数的字符;将提取的字符拼接成一个新的字符串;输出结果。下表为偶数的......
  • Redis 集群偶数节点跨地域部署之高可用测试
    笔者目前所在公司存在多套Redis集群:A集群主+从共60个分片,部署在3+3台物理机上,每台机器各承载10个端口主库30个端口在广州,从库30个端口在中山B集群共72个端口,部署架构一模一样上云后,均为广东的某个云厂商的2个可用区,不再使用IDC数据中心,部署架构一......
  • Etcd 节点为啥不能设置偶数
    在etcd集群中,最好不要设置偶数数量的节点。这是因为etcd使用Raft一致性算法来确保数据的一致性和高可用性。Raft算法要求在进行Leader选举和数据复制时,节点数必须是奇数个,以保证算法的正确性和容错性。主要原因如下:Leader选举:Raft算法通过选举一个Leader节点来处理所有的写入......