当前位置:   article > 正文

educoder数组分糖果JAVA_Educoder JS学习笔记5:JS数组

获取字符串a在数组myarray的所有位置并组成一个位置数组; 获取字符串b在数组myarr

第1关:数组的创建、读写和长度

任务描述

已知两个数组array1和array2,参数a是一个整数,先判断a的值与数组array1的长度值相等,如果相等,返回数组array1的最后一个元素,反之,则返回数组array2的最后一个元素。

过关帮助

数组的创建

创建数组有两种方法,一是使用数组字面量,简单来说就是在[]之中列出数组的所有元素:

var numberArray = [1,2,3,4,5];//数字数组

var stringArray = ["java","script","edu","coder"];//字符串数组

var mixArray = [1,2,"java",true,6.6];//混合数组

如上,各元素之间用,隔开。JavaScript中数组的元素可以是不同的数据类型,如上面的第三个数组。

创建数组的第二种方法是新建一个Array对象的实例,如:

var myArray = new Array();//创建一个初始为空的数组

var lengthMixArray = new Array(6);//创建一个长为6的数组

这种情况下可以设置数组的长度(即数组中元素的个数),也可以不设置。

数组元素的读取和写入

数组元素的读取和写入在形式上相似,都是用赋值符号连接的两个表达式。

读取时,存放读入值的变量在左边,数组元素在右边:

var readArray = [1,3,"js",true,2.22];

var read = readArray[0];//读取第一个元素到变量read中

写入时,数组元素在左边,待写值在右边:

var writeArray = [1,3,"js",true,2.22];

writeArray[0] = 2;//在第一个元素的位置写入2

console.log(writeArray[0]);//原来的1已经被覆盖,输出2

数组长度

数组长度指数组中元素的个数,等于最大索引值加1,数组的length属性即数组的长度。

var arrayLength = [1,"js",true];

console.log(arrayLength.length);//输出3

数组的长度也可以写入,当写入的值小于数组的实际长度时,数组会被删除一部分。大于实际长度时,数组会在尾部添加一些空的区域。

arrayLength.length = 2;

console.log(arrayLength);//输出[1,"js"]

编程内容

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*********/

}

第2关:数组元素的增减

任务描述

将数组testArray的最后a个元素移动到最前面,这a个元素之间的相对位置不变,其余元素之间的相对位置不变;

比如将数组[1,2,3,4,5]最后2个元素移动到最前面,数组变为[4,5,1,2,3];

返回移动结束后数组在索引b处的元素。

过关帮助

数组元素的增加

在JavaScript中,为数组增加元素可以在数组头部(索引最小处)或者尾部进行,可以使用数组的方法或者直接使用运算符。

在尾部添加元素

最直观的方法是直接给当前尾部元素的后一个位置赋值。

var numberArray = [12,23,34,45];

numberArray[numberArray.length] = 56;

console.log(numberArray);//输出[12,23,34,45,56]

第二种方法是使用push()函数,往数组的末尾添加一个或多个元素,参数是要添加的元素,返回数组长度。

//利用push()方法在数组尾部添加元素

var numberArray = [12,23,34,45];

var newLength = numberArray.push(56);

console.log(newLength);//输出5

console.log(numberArray);//输出[12,23,34,45,56]

在头部添加元素

unshift()方法在数组的头部添加元素,并返回数组新的长度,其余元素自动向索引大的方向移动。

var sArray = ["ja","va","script"];

var newLength = sArray.unshift("he","llo");

console.log(newLength)//输出5

console.log(sArray);//输出["he","llo","ja","va","script"];

数组元素的删除

删除也能在数组头部(索引值小)或者尾部进行。

在尾部删除元素

直接修改数组长度为更小的值。

var array = [1,2,true,"hello"];

array.length = 3;//索引最大的元素被删除

console.log(array);//输出[1,2,true]

第二种方法是使用delete运算符。delete运算符后接要删除的元素,但是删除后,会有一个空占位符,所以数据的长度保持不变。如:

var dArray = [11,22,33,44,55];

delete dArray[4];//删除索引最大的元素

console.log(dArray);//输出[11,22,33,44]

console.log(dArray.length); //长度为5

第三种方法是使用pop(),一次删除一个,并返回被删除的元素。

//利用pop()方法在数组尾部删除元素

var numberArray = [3,4,5,6,7];

var deletedNumber = numberArray.pop();

console.log(deletedNumber);//输出被删除的元素7

console.log(numberArray);//删除后的数组为[3,4,5,6]

在头部删除元素

有unshift(),自然有shift(),shift()的作用是删除数组头部一个元素并返回该元素,然后所有元素往索引值小的方向移动一位。

建议记住shift单词的意思是:删除,去掉。

var dArray = [11,22,33,44,55];

console.log(dArray.shift());//输出11,11被从数组中删除

console.log(dArray);//输出[22,33,44,55]

编程内容

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*********/

}

第3关:数组的遍历和多维数组

任务描述

将一维数组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 arr1 = new Array(a);

for(var i = 0;i < a;i++){

arr1[i] = new Array(b);

}

var count = 0;

for(var i = 0;i < a;i++){

for(var j = 0;j < b;j++){

arr1[i][j] = arr[count++];

}

}

return arr1;

/*********end*********/

}

第4关:数组的常用方法

任务描述

获取字符串a在数组myArray的所有位置并组成一个位置数组;

获取字符串b在数组myArray的所有位置并组成一个位置数组;

合并这两个数组然后返回合并后的数组。

编程内容

function mainJs(myArray) {

myArray = myArray.split(",");

//请在此处编写代码

/*********begin*********/

var a = new Array();

var i = 0,j = 0;

while(myArray.indexOf("a",i) != -1)

{

a[j] = myArray.indexOf("a",i);

i = a[j] + 1;

j++;

}

var b = new Array();

var i1 = 0,j1 = 0;

while(myArray.indexOf("b",i1) != -1)

{

b[j1] = myArray.indexOf("b",i1);

i1 = b[j1] + 1;

j1++;

}

var d = a.concat(b);

return d;

/*********end*********/

}

第5关:数组的应用——内排序

任务描述

函数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]);

}

//请在此处编写代码

/*********begin*********/

var mi = new Array();

var aLength = arr.length;

var temp;

var max = arr[0];

var maxIndex = 0;

for(var i = 0;i < aLength - 1;i++) {

for(var j = 1;j < aLength - i;j++) {

if(arr[j] > max) {

max = arr[j];

maxIndex = j;

}

}

mi[i] = maxIndex;

temp = arr[aLength-i-1];

arr[aLength - i - 1] = arr[maxIndex];

arr[maxIndex] = temp;

var max = arr[0];

var maxIndex = 0;

}

return mi;

/*********end*********/

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/567505
推荐阅读
相关标签
  

闽ICP备14008679号