//什么是:数组中的元素又引用了另一个子数组
//when: 1.保存横行竖列的二维数组结构; 2.对一个组数组进行细致分类时
//创建
var arr = [];//不知道子数组的内容
arr[0] = ['鲍鱼','花甲','海胆','大虾'];
arr[1] = ['牛肉','鸡肉','鸭肉','羊肉'];
arr[2] = ['空心菜','油麦菜','大白菜','黄瓜'];
console.log(arr);
//访问:arr[r][c] 用法和普通数组的用法完全一样
console.log(arr[1][1]);
console.log(arr[2][5]);//undefined;
//创建数组的同时初始化元素
var data = [
// c
// 0 1 2 3
[2,4,4,2],//0 r
[4,4,4,4],//1
[4,2,0,6],//2
[2,2,4,2]//3
];
//遍历二维数组 注意:r(行)下标不能越界!!! 越界会报错
function isFull(){//判断data是否满格
//遍历data
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;
}
栈:
JS中并没有专门的栈
栈时一段封闭,只能从另一端出的数组,
特点是FILO first input last out
arr.push()在数组最后追加元素
arr.pp()删除最后一个元素
var bus =[];
for(var i =1;i <=5;i++){
bus.push('乘客' + i);
console.log(String(bus));
}
while(bus.length>0){
var last = bus .pop();
console.log
}
// 队列(queue):只能从一端进入,从另一端出去的数组
// 特点:FIFO
// how :希望按照先后顺序使用数组
// 结尾入:arr.push()
// 开头出:var first = arr.shift()
var iphone = 5;
var queue = [];//购买iphone排队的人
for(var i = 1;i<=5;i++){
queue.push("顾客"+i);
}
console.log(String(queue));
while(iphone>0){
var first = queue.shift();
iphone--;
console.log(first+"购买成功");
console.log(String(queue));
}
/*1.创建一个可以存放四组数据的二维数组,循环随机录入数据,计算每一组的
平均值、总和*/
function one(){
var arr = [];
for(var r = 0;r < 4;r++){
var sum = 0;
arr[r] = [];
for(var c = 0;c < 4;c++){
var num = parseInt(Math.random()*10);
arr[r][c]=num;
sum += arr[r][c];
}
console.log('第' + r + '组数的总和是:' + sum);
console.log('第' + r + '组数的平均值是:' + (sum)/4);
}
console.dir(arr);
}