摘自《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