JavaScript学习⼿册五:JS数组
第5关:数组的应⽤——内排序
本关的编程任务是补全右侧代码⽚段中begin⾄end中间的代码,具体要求如下:
函数mainJs(a)中的变量arr是⼀个数组,你需要对该数组进⾏选择排序;
返回选择排序进⾏过程中,在每⼀趟交换前,待排序⼦数组的最⼤元素的位置组成的数组;
⽐如对于上⾯相关知识中的数组[9,5,8,0,2,6],第⼀次交换前,最⼤的元素9的索引是0,第⼆次交换前,最⼤元素8的索引是2,第三次交换前最⼤元素6的索引是0,第四次交换前最⼤元素5的索引是1,第五次交换前最⼤元素2的索引是1,第六次交换前最⼤元素0的索引是0。索引需要返回的数组是[0,2,0,1,1,0];
解决:
function mainJs(a) {
var arr = a.split(",");
for(var i = 0;i < arr.length;i++) {
arr[i] = parseInt(arr[i]);
}
//请在此处编写代码
js合并两个数组/begin/
var arrv = [];
var num=0;
for(var i = arr.length-1;i >=0;i–) {
n=arr[0];
arrv[num]=0;
for(var j = 1;j <=i;j++) {//⼀次选择
if(arr[j] > n) {
n = arr[j];
arrv[num]= j;
}
}
var temp=arr[arrv[num]];
arr[arrv[num]]=arr[i];
arr[i]=temp;
num++;
}
arrv.pop();
return arrv;
/
*********end*********/
}
nav
第4关:数组的常⽤⽅法
获取字符串a在数组myArray的所有位置并组成⼀个位置数组;
获取字符串b在数组myArray的所有位置并组成⼀个位置数组;
合并这两个数组然后返回合并后的数组。
function mainJs(myArray) {
myArray = myArray.split(",");
//请在此处编写代码
/begin/
var s=0;
var a=new Array();
while(s<myArray.length)
{
s=myArray.indexOf(“a”,s);
if(s!=-1)
{
a.push(s);
s++;
}
else{
break;
}
}
s=0;
var b=new Array();
while(s<myArray.length)
{
s=myArray.indexOf(“b”,s);
if(s!=-1)
{
b.push(s);
s++;
}
else{
break;
}
}
at(b);
/end/
}
第3关:数组的遍历和多维数组
本关的编程任务是补全右侧代码⽚段中begin⾄end中间的代码,具体要求如下:
将⼀维数组arr转为a⾏b列的⼆维数组,⾏优先;
返回该⼆维数组;
具体请参见后续测试样例。
var arr = [1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15,16,17,18,19,20,21,23,22]; function mainJs(a,b) {
a = parseInt(a);
b = parseInt(b);
//请在此处编写代码
/begin/
var murr = new Array(a);
for(var i= 0;i<a;i++) {
murr[i] = new Array(b);
}
var count =0;
for(var i=0;i<a;i++)
{
for(var j = 0;j<b;j++)
{
murr[i][j] = arr[count];
count++;
}
}
return murr;
/
*********end*********/
}
第2关:数组元素的增减
将数组testArray的最后a个元素移动到最前⾯,这a个元素之间的相对位置不变,其余元素之间的相对位置不变;⽐如将数组[1,2,3,4,5]最后2个元素移动到最前⾯,数组变为[4,5,1,2,3];
返回移动结束后数组在索引b处的元素;
具体请参见后续测试样例。
var testArray = [12,“java”,“js”,“c”,“c++”,24,36,“python”,“c#”,“css”];
function mainJs(a,b) {
a = parseInt(a);
b = parseInt(b);
//请在此处编写代码
/begin/
for (var i=0;i<a;i++){
testArray.unshift(testArray .pop());
}
return testArray[b];
/*********end*********/
}
第1关:数组的创建、读写和长度
本关的编程任务是补全右侧代码⽚段中begin⾄end中间的代码,具体要求如下:
已知两个数组array1和array2,参数a是⼀个整数,先判断a的值与数组array1的长度值相等,如果相等,返回数组array1的最后⼀个元素,反之,则返回数组array2的最后⼀个元素;
var array1 = [1,2,3,“js”,4,true,“hello”];
var array2 = [true,true,“java”,2.1];
function mainJs(a) {
//请在此处编写代码
/begin/
if(a==array1.length){
return array1[array1.length-1];
}
else{
return array2[array2.length-1];
}
/end/
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论