栈和队列:js中没有专门的栈和队列类型,都是用普通该数组模拟的。何时:只要希望按照顺序使用数组元素时。栈:一段封闭,只能从另一端进出数组。顺序:FILO何时:如果希望始终操作最后进数组的最新的元素时。如何:结尾出入栈: 入:arr.push(值); 出:var last=arr.pop(); 优:每次出入栈不影响其余元素的位置。 开头出入栈: 入:arr.unshift(值); 出:var first=arr.shift(); 缺:每次出入栈都会影响每个元素的位置队列: 只能从一端进入,从另一端出 顺序: FIFO 何时: 只要按照先来后到的顺序使用元素 如何: 从结尾入队列: arr.push(值) 从开头出队列: var first=arr.shift() 1. 二维数组: 什么是: 数组中的元素,又引用了另一个子数组。 何时: 1. 存储横行竖列的二维数据 2. 对一个大的数组中的元素,进一步分类 如何: 创建: 1. 先创建空数组,再添加子数组: var arr=[]; arr[0]=[2,2,4,0]; arr[1]=[0,2,2,0]; 2. 在创建数组同时,初始化子数组 var arr=[ [2,2,4,0],//0 [0,2,2,0],//1 ... ]; 访问元素: arr[r][c]:访问arr中r位置的子数组中的c位置的元素 越界: r不能越界 遍历: 外层循环控制行,内层循环控制列 for(var r=0;r<arr.length;r++){ for(var c=0;c<arr[r].length;c++){ arr[r][c]//当前元素 } }



网友评论