试卷1
第四部分:编程题题(未用 JavaScript 完成编码则不计分,20%)
44. 使用 JavaScript 数组arrList
完成下列需求 (算法编程题,完成度越高,得分越高)
- 先将每个奇数存到
oddRepeat
数组中、将每个偶数存到evenRepeat
数组中(数字不去重,出现几次写几次) - 再对整个数组进行去重并执行排序操作(数字从大到小排序,不允许使用JavaScript
内置函数sort
实现) - 最后,将排序后的数据保存到数组
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控制台进行修改执行查看结果
资料来源
感谢下述文档提供的资料!!!参考文献如下: