C1前端见习工程师试题卷(1.1):JS编程题之求奇偶、去重、冒泡排序

第四部分:编程题题(未用 JavaScript 完成编码则不计分,20%)

44. 使用 JavaScript 数组arrList完成下列需求 (算法编程题,完成度越高,得分越高)

  1. 先将每个奇数存到oddRepeat数组中、将每个偶数存到evenRepeat数组中(数字不去重,出现几次写几次)
  2. 再对整个数组进行去重并执行排序操作(数字从大到小排序,不允许使用JavaScript
    内置函数sort实现)
  3. 最后,将排序后的数据保存到数组list
    如下所示:
var arrList = [1, 9, 0, 2, 1, 6, 8, 11, 0, 5, 18, 1, 26, 11, 8, 2, 3, 5, 18]
// 最终结果
{
list: [ 26, 18, 11, 9, 8, 6, 5, 3, 2, 1, 0 ], evenRepeat: [ 0, 2, 6, 8, 0, 18, 26, 8, 2, 18 ], oddRepeat: [ 1, 9, 1, 11, 5, 1, 11, 3, 5 ]
}

参考答案:

//定义数组元素信息
//原数组
 var arrList = [1, 9, 0, 2, 1, 6, 8, 11, 0, 5, 18, 1, 26, 11, 8, 2, 3, 5, 18] ;
 //存放奇数数组
 var oddRepeat = [];
 //存放偶数数组
 var evenRepeat = [];
 //最终List存放
 var obj = {};
 
 //判断奇偶,用i来控制原数组(arrList)的标,length求数组的长度
 //把判断好的数字通过push() 方法,把奇数(偶数)重新写进evenRepeat(oddRepeat)里面存放
 //push()方法,即向数组的末尾添加一个或多个元素,并返回新的长度。注意: 新元素将添加在数组的末尾。 此方法会改变数组的长度。
 for(var i=0; i<arrList.length; i++){
 	//进入判断奇偶公式,利用完全匹配来计算
 	if(arrList[i]%2 ===0){
 		evenRepeat.push(arrList[i]) ;
 		}else{ 
 		oddRepeat.push(arrList[i]);}
 	}
 	
 //去重
 //1.通过双重循环,让每个数字都进行判断是否一样,除开索引位置一样的数字
 //2.通过splice()方法进行删除重复数字,并返回删除元素的数组
 //splice() 方法用于添加或删除数组中的元素。注意:这种方法会改变原始数组。
 for(var j=0; j<arrList.length; j++){
 	for(var x=0; x<arrList.length; x++){
 		//进行判断数字是否重复,并且要满足索引位置是不一样的
 		if(arrList[j]==arrList[x] && j!=x){
 			arrList.splice(x,1) ;
 			}
 		}
 	}
 	
 //通过冒泡排序办法进行从大到小的排序
 // 原数组 arrList = [1, 9, 0, 2, 1, 6, 8, 11, 0, 5, 18, 1, 26, 11, 8, 2, 3, 5, 18] ;
 //k控制arrList需要需要比较的数字的索引,把这个数字与内循环中数组内其他数字比大小;
 //最终把大的数字换到最后面也就是arrList[m]里面;
 //比如:外部第一次循环,k=0时, arrList[k] = 1  
 //	内部第一次循环:m=0  arrList[m] 》 arrList[0] = 1 , if(arrList[k]>arrList[m])  》if(arrList[0]>arrList[0])  》  if(1>1)   条件不成立 
 // 内部第二次循环  m=1 arrList[m] 》 arrList[1] = 9 ,if(arrList[k]>arrList[m])  》if(arrList[0]>arrList[1])  》  if(1>9) 条件不成立   依次进行冒泡处理
 for(var k=0; k<arrList.length; k++){
 		for(var m=0; m<arrList.length; m++){
 			if(arrList[k]>arrList[m]){
 				var temp = arrList[k] ;
 				arrList[k] = arrList[m] ;
 				arrList[m] = temp ;
 				}
 			}
 		}
 
 obj.list =arrList ;
 obj.evenRepeat = evenRepeat ;
 obj.oddRepeat = oddRepeat ;
 
 console.log(obj) ;
 

执行运行结果:
在这里插入图片描述


tips: 这种小量JS可以直接在浏览器的Console控制台进行修改执行查看结果


资料来源

  感谢下述文档提供的资料!!!参考文献如下:

  1. JavaScript push () 方法
  2. JavaScript splice () 方法
  3. 冒泡排序之JavaScript 代码实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Marilynhom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值