目录
创建数组的方式(2种)
方式一:
var colors = new Array(); //创建一个空数组
var colors = new Array(20); //创建一个长度为20的数组
var colors = new Array("red", "blue", "green"); //创建一个包含3个字符串值的数组
方式二:
var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
var names = []; // 创建一个空数组
var values = [1,2,]; // 不要这样!这样会创建一个包含 2 或 3 项的数组
var options = [,,,,,]; // 不要这样!这样会创建一个包含 5 或 6 项的数组
获取数组长度
var colors = ["red", "blue", "green"];
alert(colors.length); // 3
利用 length 属性,末尾添加新项
var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
colors[colors.length] = "black"; //(在位置 3)添加一种颜色
colors[colors.length] = "brown"; //(在位置 4)再添加一种颜色
检测是否为数组
-
ECMAScript3中语法
if (value instanceof Array){
//对数组执行某些操作
}
-
ECMAScript5中语法
-
支持 Array.isArray()方法的浏览器有 IE9+、Firefox 4+、Safari 5+、Opera 10.5+和 Chrome,其它未支持浏览器解决方法待补充。
-
if (Array.isArray(value)){
//对数组执行某些操作
}
数组与字符串之间的转换
var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
/**
* join()函数可以规定以什么方式隔开
*
*/
alert(colors.toString()); // red,blue,green
alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue
栈方法
栈是一种 LIFO(Last-In-First-Out, 后进先出)的数据结构,也就是新添加的项早被移除。而栈中项的插入(叫做推入)和移除(叫做 弹出),只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了 push()和 pop()方法,以便 实现类似栈的行为。
- push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
- pop()方法从数组末尾移除后一项,减少数组的 length 值,然后返回移除的项。
var colors = new Array(); // 创建一个数组
var count = colors.push("red", "green"); // 推入两项
alert(count); //2
count = colors.push("black"); // 推入另一项
alert(count); //3
var item = colors.pop(); // 取得最后一项
alert(item); //"black"
alert(colors.length); //2
队列方法
队列数据结构的访问规则是 FIFO(First-In-First-Out, 先进先出。队列在列表的末端添加项,从列表的前端移除项。结合使用 shift()和 push()方法,可以像使 用队列一样使用数组。
- push() 方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
- shift() 方法从数组前端移除第一项,减少数组的 length 值,然后返回移除的项。
var colors = new Array(); //创建一个数组
var count = colors.push("red", "green"); //推入两项
alert(count); //2
count = colors.push("black"); //推入另一项
alert(count); //3
var item = colors.shift(); //取得第一项
alert(item); //"red"
alert(colors.length); //2
相反队列
使用 unshift()和 pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项。
var colors = new Array(); //创建一个数组
var count = colors.unshift("red", "green"); //推入两项
alert(count); //2
count = colors.unshift("black"); //推入另一项,此时数组顺序为"black"、"red"、"green"
alert(count); //3
var item = colors.pop(); //取得最后一项
alert(item); //"green"
alert(colors.length); //2
重排序方法
- 升序
function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } } var values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); //0,1,5,10,15
- 降序
function compare(value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } } var values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); // 15,10,5,1,0