創(chuàng)建方式:
var arr = new Array();
-
var arr = [];
(推薦)
判斷方式:
value instanceof Array
Array.isArray(value) //常用
轉(zhuǎn)換:
valueOf()
toString() //分割成每個(gè)元素組成一個(gè)字符串匆瓜,字符串用逗號(參數(shù))分隔。
toLocaleStrng ()
join() //返回 一個(gè)由數(shù)組中的值連接起來組成的字符串驮吱,連接符為傳入的參數(shù)茧妒,默認(rèn)為 ,
一 基本方法:
1> pop() 取出最后一個(gè)元素 (先進(jìn)后出),返回值就是數(shù)組最后一個(gè)元素左冬,而且數(shù)組也會(huì)改變
2> shift() 取出第一個(gè)元素 (先進(jìn)先出)桐筏,返回值就是數(shù)組第一個(gè)元素又碌,而且數(shù)組也會(huì)改變
3> push() 放入元素 九昧,返回值為 數(shù)組的長度绊袋。
4> unshift() 放入元素,與push() 不同的是 新放入的隊(duì)頭癌别,返回值也為數(shù)組的長度
5> reverse() 反轉(zhuǎn)數(shù)組的順序
6> sort() 對數(shù)字進(jìn)行排序
這兩個(gè)重排序方法的返回值是排序完后的數(shù)組皂岔,同時(shí)原數(shù)組也會(huì)發(fā)生改變。
二 操作方法:
1> concat() 參數(shù)是字符串或者數(shù)組展姐,把他們添加到調(diào)用此方法的數(shù)組上躁垛。返回值是一個(gè)新數(shù)組圾笨。原數(shù)組不變
2> slice() 分割數(shù)組項(xiàng)從第一個(gè)參數(shù)開始到第二個(gè)參數(shù)教馆,返回截取后的新數(shù)組,原數(shù)組不變土铺。
3> 強(qiáng)大的splice()
1) 刪除 兩個(gè)參數(shù) ,第一個(gè)是起始項(xiàng),第二個(gè)是要?jiǎng)h除的項(xiàng)數(shù).
2) 插入 至少三個(gè)參數(shù),第一個(gè)是起始項(xiàng),第二個(gè)是0(刪除0項(xiàng)),第三個(gè)或者更多是插入的項(xiàng).
3) 替換 至少是三個(gè)參數(shù)悲敷, 第一個(gè)是起始項(xiàng)究恤,第二個(gè)是刪除的項(xiàng)數(shù),第三個(gè)或者更多是插入的項(xiàng).
返回刪除的項(xiàng)后德,由數(shù)組表示,原數(shù)組發(fā)生改變
**三 位置方法: **
1> indexOf() 第一個(gè)參數(shù)為要查找的項(xiàng)瓢湃,第二個(gè)是查找的位置索引(可選)理张,返回值為查找項(xiàng)所在位置。
2> lastIndexOf() 從末尾開始查找绵患,功能和indexOf一樣涯穷。
四 迭代方法:
every(): 對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)藏雏,如果該函數(shù)對每一項(xiàng)都返回 true拷况,則返回 true
個(gè)人理解:就是檢查是否數(shù)組的每一項(xiàng)都符合函數(shù)規(guī)定的功能?如果每一項(xiàng)都符合此方法返回true掘殴,則返回true,否則返回false奏寨。
var arr = [8,21,69,27,6];
var result = arr.every(function(value,index) {
if(value > 5) {
return true;
}else{
return false;
}
});
console.log(result); //true
filter(): 對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)起意,返回該函數(shù)會(huì)返回 true 的項(xiàng)組成的數(shù)組
個(gè)人理解:查看數(shù)組項(xiàng)中是否有其中一項(xiàng)符合函數(shù)規(guī)定要求,如果有就返回它病瞳,以數(shù)組形式返回揽咕。
var numbers = [1,2,3,4,,9,12,41,3,2,5,4];
var result = numbers.filter(function(value, index) {
if(value > 2){
return true;
}else{
return false;
}
});
console.log(result); //[3,4,9,12,41,3,5,4]
forEach():對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)套菜。這個(gè)方法沒有返回值
個(gè)人理解:功能和for循環(huán)操作數(shù)組相同亲善。
var numbers = [1,2,3,4,5];
numbers.forEach(function(value, index) {
console.log(value);
});
// 1 2 3 4 5
map(): 對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)逗柴,返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
個(gè)人理解:返回對數(shù)組每一項(xiàng)操作后的結(jié)果蛹头,以數(shù)組形式顯示。
var numbers = [1,2,3,4,5];
var result = numbers.map(function(value, index) {
return value += 1;
});
console.log(result.toString()); //2,3,4,5,6
some(): 對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)戏溺,如果該函數(shù)對任一項(xiàng)返回 true,則返回 true旷祸。
個(gè)人理解耕拷,如果說every是 && 的特性,那some就是 || 的特性托享,只要有一個(gè)數(shù)組項(xiàng)滿足函數(shù)中的規(guī)定返回true骚烧,則返回true。
這幾個(gè)方法都不會(huì)改變原數(shù)組的值止潘。
五 歸并方法
reduce():
reduceRight():