二维数组和数组常用API----JavaScript学习笔记(5.16.5.17)

1.什么是二维数组?
数组中的元素又引用了另一个子数组

保存横向行 竖向列 的二维数据结构
对一组数据,在进行细致分类

创建的同时初始化数据

	 var data=[
	   //0,1,2,3
	 	[0,0,0,0],//0
	 	[0,0,0,0],//1
	 	[0,0,0,0],//2
	 	[0,0,0,0]//3
	 ];
	 //访问 arr[r][c]  先找楼层在找门牌号

先创建在赋值

var cites=[];
	 cites[0]=['武汉','宜昌','襄阳','天门'];
	 cites[1]=['长沙','岳阳','娄底'];

注意:二维数组,行下标r不能越界 ---- 报错!

	 console.log(cites[1][2]);//娄底
	 console.log(cites[1][3]);//undefind
	 //console.log(cites[2][0]);//报错

二维数组的遍历

	 for(var r=0;r<cites.length;r++){//外层循环   ---遍历每一行
	 	for(var c =0;c<cites[r].length;c++){ //内层循环  ----遍历第r行中的每一列
	 		console.log(cites[r][c]);
	 	}
	 }

通过循环随机给data赋值

	 for(var r=0;r<data.length;r++){
	 	for(var c=0;c<data[r].length;c++){
	 		var rand =Math.floor(Math.random()*4);//一个0-3之间的随机整数
	 		data[r][c]=rand;
	 	}
	 }
	 debugger;//设置断点 必须要打开F12的开发模式才起作用

判断data中是否满格:

	 function isFull(){
	 	 for(var r=0;r<data.length;r++){
	 		for(var c=0;c<data[r].length;c++){
	 			//如果当前元素等于0,就返回false   表示可以继续游戏
	 			if(data[r][c] === 0){
	 				return false;
	 			}
	 		}
	 	}
	 	return true;//返回true  表示游戏结束
	 }
	 console.log(isFull());

创建数组,为其赋值,然后输出这些值。
常用
concat(value,value1,……) 连接两个或更多的数组,将数组中的子元素变成单个元素从末尾加入,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔,当join(“”)时,为无缝拼接。
slice(n,i) 从某个已有的数组返回选定的元素 。从下标为n开始截取元素,直到下标为i的元素结束(被截取下来的元素含有下标为n的元素,不含下标为i的元素,含头不含尾),i和n可为负数,表示从尾部截取。arr.splice()返回值为被截取部分。
splice(n,i,value,value1,……) 删除元素,并向数组添加新元素。n为开始删除元素的下标,i为被删除的个数,value为添加的元素,添加数量可以不等于删除数量 ,从哪里开始删除的就从哪里开始添加。
//在数组的末尾追加一个元素

puch()删除数组末尾的元素 返回被删除的元素

arr.push(value)   ==>  arr[arr.length]=value
	var arr=[1,2,3,4];
	arr.push(8);
	console.log(String(arr));

pop() 删除并返回数组的最后一个元素

 arr.pop()  ==>   arr.length = arr.length - 1;
	var del = arr.pop();
	console.log(String(arr));  //1,2,3
	console.log(del);  //4

shift() 删除并返回数组的第一个元素
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

先进后出的一个管理方式

类似栈:一端封闭,只能从另一端进出的数组
特点:每次出入栈,都不影响其他元素的位置

从开头出入栈:
特点:每次出入栈,其他元素位置都会一次顺移

	var bus=[];
	for(var i=1;i<=5;i++){
		// bus.push("乘客"+i);
		bus.unshift("乘客"+i);
		console.log(String(bus));
	}

	while(bus.length>0){
		// var last=bus.pop();
		var first=bus.shift()
		console.log(first+"下车");
		console.log(String(bus));
	}

笔试题:实现十进制数转化为二进制

	function getBin(des){
		//定义以存储二进制每个数的数组
		var bin=[];
		//反复:那des取2的余数,止到des等于0   只要des>0反复取余
		while(des>0){
			// 将des取2的余数放入数组
			// bin.unshift(des%2);//在数组的开头存入元素
			bin.push(des%2);
			// 将des/2,取整后,在保存到des中
			des=parseInt(des/2);
		}//循环结束
		//翻转bin
		bin.reverse();
		// 将数组做无缝连接,并返回
		return bin.join("");

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值