構(gòu)建數(shù)組
var colors = new Array();
指定數(shù)組的大小
var colors = new Array(20);
或者指定數(shù)組里面的內(nèi)容
var colors = new Array("red", "blue","green");
length可以刪除/添加末尾的元素
var colors = ["red", "yellow", "green"];
colors.length = 2; // 此時(shí)green就被刪除了
檢測(cè)數(shù)組
1、instanceof instanceof用于判斷一個(gè)變量是否是某個(gè)對(duì)象的實(shí)例
var a = [1,2,3,5];
a instanceof Array; // 輸出為true
2、Array.isArray(a); // true
3、 利用constructor
a instanceof Array; //true
a.constructor == Array; // true
4、Object.prototype.toString.call(a);
// 輸出 "[object Array]"
棧方法
push()方法可以接受任意數(shù)量的參數(shù),把它們逐個(gè)添加到數(shù)組末尾,并返回修改后數(shù)組的長(zhǎng)度
pop()方法可以從數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的length值,然后返回移除項(xiàng)
// 注意注意 高能高能 push是返回修改后數(shù)組的長(zhǎng)度 pop是返回移除的項(xiàng) 棧---后進(jìn)先出,從菊花進(jìn)入從菊花輸出
隊(duì)列方法
push() ...
shift() 方法從數(shù)組中獲取第一項(xiàng),移除第一項(xiàng)以后并返回該項(xiàng),同時(shí)數(shù)組長(zhǎng)度減1
// 隊(duì)列----先進(jìn)先出 從菊花進(jìn)入,從嘴巴輸出 好惡心。。。。。。。。。。
另外 unshift 是可以在數(shù)組前端添加項(xiàng) 利用pop和unshift 可以反向模擬隊(duì)列
重排序方法
reverse() 數(shù)組反轉(zhuǎn)
sort() 排序 傳入一個(gè)function作為參數(shù)
該函數(shù)接受兩個(gè)參數(shù) 如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)參數(shù)之前則返回一個(gè)負(fù)數(shù)
如果兩個(gè)參數(shù)相等則返回0
如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)參數(shù)之后則返回一個(gè)正數(shù)
操作方法
1、 concat() 數(shù)組拼接 -------- 淺拷貝
var colors = ["red", "green", "blue"];
colors.concat("yellow", ["black", "brown"]); // 返回的是一個(gè)新數(shù)組
2、slice() 數(shù)組切割
接受一個(gè)或兩個(gè)參數(shù),第一個(gè)參數(shù)返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng),如果有兩個(gè)參數(shù),表示返回起始和結(jié)束位置之間的項(xiàng) (不包括結(jié)束位置的項(xiàng))
3、最強(qiáng)大的數(shù)組方法 splice
-- 刪除
-- 插入
-- 替換
有三個(gè)參數(shù)
-- 第一個(gè)參數(shù) 表示 要?jiǎng)h除的位置 index
-- 第二個(gè)參數(shù) 要?jiǎng)h除的個(gè)數(shù) length
-- 第三個(gè)參數(shù)-第N個(gè)參數(shù) (可選)用于替換或者刪除
// 返回的是被刪除的數(shù)組
var colors = ["red", "green", "blue"];
// 刪除
var remove = colors.splice(0,1);
// 增加數(shù)組
colors.splice(1, 0, "yellow", "orange");
// 替換
colors.splice(1,1,"red", "orange");
位置方法
1、indexOf 查找某個(gè)數(shù)在數(shù)組中的位置,沒有就返回-1 array.indexOf(number);
2、lastIndexOf 從數(shù)組的末尾開始向前查找
迭代方法
迭代方法需要傳入一個(gè)函數(shù)作為參數(shù),這個(gè)函數(shù)有三個(gè)參數(shù) item, index, array //item是數(shù)組的項(xiàng),index是位置,array是數(shù)組的本身
--- every() // 比較每一項(xiàng),如果每一項(xiàng)都符合就返回true
-- filter() // 比較每一項(xiàng),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組
-- forEach() // 給數(shù)組中的每一項(xiàng)指定函數(shù)
-- map() //對(duì)數(shù)組中每一項(xiàng)指定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
-- some() // 只要任一項(xiàng)目為true就返回true --為啥不直接用indexOf呢
遞歸方法
-- reduce() // 傳入一個(gè)函數(shù) 函數(shù)有四個(gè)參數(shù) prev, cur, index, array -- 前一項(xiàng),當(dāng)前項(xiàng),位置, 當(dāng)前數(shù)組
數(shù)組從前往后
-- reduceRight() // 數(shù)組從后往前