摘自《JS高级程序设计》(第三版)第五章
创建数组
- 方法一
var colors = new array(10);
var colors = Array(10);//new 可省略
var colors = Array("red","blue");
- 方法二
var colors = [];
var colors = ["red","blue"];
使用数组
alert(colors[0]);
colors[5] = "black";//数组长度被扩充到了6个,其他项为undefined
colors.length = 1;//length属性值可变,数组只剩下“red”一个元素
colors[colors.length] = "green";//在末尾添加新项 等于push
colors.toString();//返回数组元素拼接的字符串
colors.toLocaleString();//调用了数组中每一项的toLocaleString()方法
colors.valueOf();//返回原数组
数组排序
//sort按升序排列数组,可以接收一个方法作为参数,便于指定哪个值在哪个值前面
function compare_str(value1,value2){
if(...){
return -1;
}else if(...){
return 1;
}else return 0;
}
function compare_num(value1,value2){
return value2 - value1;
}
colors.sort(compare_str);
检测数组
if (Array.isArray(colors)){}
if (colors instanceof Array){}//不适用多个全局环境(?)
栈方法与队列方法
方法 | 作用 | 返回值 |
---|---|---|
push() | 添加元素到数组末尾 | 修改后的数组长度 |
unshift() | 添加元素到数组开头 | 修改后的数组长度 |
pop() | 从数组末尾移除最后一项 | 移除的项 |
shift() | 从数组开头移除第一个项 | 移除的项 |
操作方法
方法 | 作用 |
---|---|
concat() | 基于数组当前项与其他项合并成一个新数组 |
slice() | 基于当前数组某些项创建新数组 |
splice() | 向数组中部插入项 |
indexOf()、lastIndexOf() | 返回元素位置 |
迭代方法
以下迭代方法作用都是对数组中的每一项运行给定函数,但不会修改数组值。根据给定函数的返回值,确定方法的返回值。
方法 | 返回值 |
---|---|
every() | 如果每一项都返回true,则返回true |
some() | 如果任一项都返回true,则返回true |
filter() | 有哪些项返回true,就返回由这些项组成的数组 |
forEach() | 无返回值 |
map() | 每一项都会返回一个结果,返回这些结果组成的数组 |
归并方法
function函数任何返回值都会作为第一个参数传给下一项
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
return prev + cur;
})//sum = 1+2+3+4+5