數(shù)組類型:
數(shù)組的基礎(chǔ)類型:number凫岖、string、boolean逢净、undefined哥放、null
1. 基礎(chǔ)類型是將值儲存在棧中
2. 基礎(chǔ)類型賦值時歼指,是直接將值復(fù)制給另一個變量,復(fù)制值以后修改其中一個值甥雕,另一個值也不會受到影響
3. 基礎(chǔ)類型全等比較踩身,是比較類型和值
數(shù)組的引用類型:[ ]、{ }社露、function
1. 引用類型是將值儲存在堆中挟阻,然后將堆的儲存地址儲存在棧中
2. 引用賦值時,是將棧中的地址復(fù)制給另一個變量峭弟,復(fù)制以后修改其中一個值附鸽,另一個值也會改變
3. 引用類型全等比較,是比較棧中的內(nèi)存地址是否相同
數(shù)組方法:
1.給數(shù)組開頭添加一個或多個元素:數(shù)組.unshift(一個值或多個值)
例:
2.給數(shù)組的末尾添加一個或多個元素:數(shù)組.push(一個值或多個值)
例:
3.刪除數(shù)組的第一個元素:數(shù)組.shift()
例:
4.刪除數(shù)組的最后一個元素:數(shù)組.pop()
例:
5.對數(shù)組做增孟害、刪拒炎、改的操作:數(shù)組.splice()
例:
6.數(shù)組的拼接:數(shù)組.concat()
例:
7.數(shù)組的排序:數(shù)組.sort()
例:
8.數(shù)組的反轉(zhuǎn):數(shù)組.reverse()
例:
9. 將數(shù)組中的元素使用指定的連接符連接在一起:數(shù)組.join
例:
10.截取數(shù)組: 數(shù)組.slice
例:
11.查找某個元素在數(shù)組中第一次出現(xiàn)的位置:indexOf方法
語法:arr.indexOf(元素,[開始查找的起始下標(biāo)]);
# 參數(shù)1:將要查找的元素
# 參數(shù)2:可選項。從哪個下標(biāo)開始往后查找
# 返回值:如果找到了谎柄,就返回這個元素在數(shù)組中的下標(biāo)丁侄,如果沒有找到,就返回-1
例:
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5));? // 2 ------ 查找數(shù)字5在數(shù)組中第一次出現(xiàn)的下標(biāo)
console.log(arr.lastIndexOf(5));? // 5 ------ 查找數(shù)字5在數(shù)組中最后一次出現(xiàn)的位置
console.log(arr.indexOf(5,3));? // 5 ------ 從下標(biāo)2開始查找數(shù)字5在數(shù)組中第一次出現(xiàn)的位置
console.log(arr.lastIndexOf(5,4));? // 2 ------ 從下標(biāo)4開始查找數(shù)字5在數(shù)組中最后一次出現(xiàn)的下標(biāo)
console.log(arr.indexOf("5"));? // -1 ------ 數(shù)組中全是數(shù)字朝巫,找不到字符串5鸿摇,所以返回-1
12. 用于遍歷數(shù)組: forEach方法
語法:? arr.forEach(function(值, 下標(biāo), 當(dāng)前數(shù)組){
// 代碼段
});
# 在這個方法中需要傳入一個函數(shù)參數(shù),這個函數(shù)的參數(shù)說明如下:
# 參數(shù)1:數(shù)組遍歷出來的每個值
# 參數(shù)2:可選項劈猿。數(shù)組遍歷出來的每個值對應(yīng)的下標(biāo)
# 參數(shù)3:可選項拙吉。被遍歷的當(dāng)前數(shù)組
例:
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
// 輸出為:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
注:這個方法沒有返回值,返回值為undefined揪荣,不會改變原來數(shù)組的值筷黔。
13.遍歷數(shù)組,并將每個元素經(jīng)過函數(shù)處理后仗颈,形成新的元素佛舱,所有新元素組成新數(shù)組返回 : map方法
語法:arr.map(function(值,下標(biāo)挨决,當(dāng)前數(shù)組){
return 新的值 - 通常新的值是由舊的值處理以后得到
});
例:
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]
注:這個方法主要用于以同樣的規(guī)則處理數(shù)組中的每個值请祖,并組成新的數(shù)組返回
14. 將數(shù)組中滿足指定條件的值,組成新的數(shù)組返回:filter方法
語法:arr.filter(function(值, 下標(biāo), 當(dāng)前數(shù)組){
return 篩選條件
});
例:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(v, index) {
return v>5
});
console.log(arr2); //[6, 7, 8, 9, 10]
注:使用方法和功能跟map方法很像脖祈,只是運行規(guī)則不一樣肆捕。map方法中的函數(shù),用于返回新的元素盖高,而filter方法中的函數(shù)福压,根據(jù)返回true或false來篩選元素