目录
任务描述
相关知识
数组的遍历
多维数组的实现
编程要求
本关任务:将一个一维数组转换为二维数组,行优先。
数组的遍历指按顺序访问你数组的每一个元素。有两种方法:
for
循环//依次在浏览器的控制台输出one,two,three,four
var stringArray = ["one","two","three","four"];
for(var i=0,sLength=stringArray.length;i<sLength;i++) {
console.log(stringArray[i]);
}
forEach()
方法 forEach()
方法的参数是一个无名字的函数,函数有三个参数,第一个参数是当前的数组元素,第二个参数是当前的索引,第三个参数是数组对象的索引。与for
循环的区别是无法用break
中断循环。var numArr = [10,11,12,13,14];
numArr.forEach(function(mem,i,arr) {
mem *= 10;
arr[i] = mem;
});
console.log(numArr);//输出[100,110,120,130,140]
多维数组实际上就是数组的数组,指数组的每一个元素也是一个数组,这里仅讨论二维数组。
JavaScript
中二维数组的列的长度不唯一,第一列可以有4
个元素,第二列可以有5
个元素,等等。
var multiArr = [[1,2,3,4],[5,6,7],[8,9]];
创建仅知道长度的二维数组
//创建一个4行6列的二维数组
var muArr = new Array(4);
for(var i = 0;i <4;i++) {
muArr[i] = new Array(6);
}
数组名[][]
的方式,第一个中括号内为行数,从0
计数,第二个中括号内为列数,也从0
计数。 以上面的数组multiArr
为例:var multiArr = [[1,2,3,4],[5,6,7],[8,9]];
console.log(multiArr[1][1]);//读元素,输出6
multiArr[0][0] = 0;//写元素
本关的编程任务是补全右侧代码片段中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 count = 0;
brr = new Array(a);
for (var i = 0; i < a; i++) {
brr[i] = new Array(b);
}
for (var i = 0; i < a; i++){
for (var j = 0; j < b; j++){
brr[i][j] = arr[count++];
}
}
return brr;
/*********end*********/
}