數組——復雜類型數據,用 Array 表示
數組的創建(兩種方法):
第一種方法:構造函數的方法定義
例如:var arr = new Array() // 定義了一個空數組
var arr = new Array(5) // 定義了一個數組,有五個變量,但是還沒有進行賦值
var arr = new Array("a","b","c", ...) //定義了一個數組,里面有 "a","b","c", ... 這些變量
第二種方法:字面量的定義
例如:var arr = [ ] 等價於 var arr = new Array()
var arr = ["a","b","c", ...] 等價於 var arr = new Array("a","b","c", ...)
數組常見的方法(官方函數):
1、push() 功能:在數組的末尾添加一個或多個元素,並返回新數組的長度。
function fn1() { var scores = [1,2,3,4,5,6]; // push();給數組的末尾增加一個元素 scores.push(8); console.log(scores); // 結果為[1, 2, 3, 4, 5, 6, 8],length為7 }
fn1()
2、pop() 功能:刪除數組里最后一個元素,返回值就是被刪除的元素。
function fn2() { var scores = [1,2,3,4,5,6] // pop();刪除數組里最后一個元素 // 返回值是 6 console.log(scores.pop()) // 結果為[1, 2, 3, 4, 5] console.log(scores) } fn2()
3、unshift() 功能:在數組的開端添加一個或多個元素,並返回新數組的長度。
function fn3() { var scores = [1,2,3,4,5,6] // unshift();開端添加一個元素 // 返回值是 7 console.log(scores.unshift(8)) // 結果為[8, 1, 2, 3, 4, 5] console.log(scores) } fn3()
4、shift() 功能:刪除數組里第一個元素,返回值就是被刪除的元素。
function fn4() { var scores = [1,2,3,4,5,6] // pop();刪除數組里第一個元素 // 返回值是 1 console.log(scores.shift()) // 結果為[2, 3, 4, 5, 6] console.log(scores) } fn4()
5、concat() 功能:可以給數組的末尾增加元素,但是cancat並不會改變原始的數組,concat的返回值是添加元素后的結果,既可以拼接數組,也可以拼接元素。
function fn5() { var scores = [1,2,3,4,5,6] // 結果為[1, 2, 3, 4, 5, 6, 7, 8] console.log(scores.concat(7,8)) // 結果為[1, 2, 3, 4, 5, 6] console.log(scores) } fn5()
6、reverse() 功能:把數組的元素的順序進行顛倒。
function fn6() { var scores = [1,2,3,4,5,6] // 結果為[6, 5, 4, 3, 2, 1] console.log(scores.reverse()) // 結果為[6, 5, 4, 3, 2, 1] console.log(scores) } fn6()
7、slice() 功能:從數組里取出一部分元素(根據起始下標和結束下標),但不包括結束下標;不會改變原始數組。
function fn7() { var scores = [1,2,3,4,5,6] // 結果為[3, 4, 5],表示從下標 2 取到下標 5 ,但不包括下標 5 代表的數 console.log(scores.slice(2,5)) // 結果為[1, 2, 3, 4, 5, 6] console.log(scores) } fn7()
8、join() 功能:把數組中所有元素拼接成一個字符串,元素是通過指定的分隔符進行分割的,默認為逗號;不會改變原始數組。
function fn8() { var scores = [1,2,3,4,5,6] // 結果為1,2,3,4,5,6 console.log(scores.join()) // 結果為1-2-3-4-5-6 console.log(scores.join('-')) // 結果為[1, 2, 3, 4, 5, 6] console.log(scores) } fn8()
9、sort() 功能:只能排序字符串,不能排序數字(默認是按字符編碼進行排序)
function fn9(){ var arr=['t','f','b','a','c']; arr.sort(); // 結果為["a", "b", "c", "f", "t"] console.log(arr); } fn9()
10、splice() 功能:既可以添加元素,也可以刪除元素,關鍵是它可以在在指定下標刪除,或者添加。
function fn10(){ var arr = ['關羽','李逵','劉備','武松','宋江','張飛','盧本偉'] //在下標2的位置插入了 William // 結果為["關羽", "李逵", "William", "劉備", "武松", "宋江", "張飛", "盧本偉"] arr.splice(2,0,"William"); console.log(arr); //把下標為3的元素刪除掉了(劉備),在下標3的位置插入了 William他姐 // 結果為["關羽", "李逵", "William", "William他姐", "武松", "宋江", "張飛", "盧本偉"] arr.splice(3,1,"William他姐"); console.log(arr); //刪除元素:從下標2開始刪除2個,插入元素:在下標2的位置插入了 William他弟 // 結果為["關羽", "李逵", "William他弟", "武松", "宋江", "張飛", "盧本偉"] arr.splice(2,2,"William他弟"); console.log(arr); //刪除元素:從下標2開始刪除3個,插入元素:在下標2的位置插入了 William他妹 和 William他哥 // 結果為["關羽", "李逵", "William他妹", "William他哥", "宋江", "張飛", "盧本偉"] arr.splice(2,2,"William他妹","William他哥",); console.log(arr); } fn10()
補充:數組的length屬性
用法:例 var arr = [12,23,34,45]
console.log(arr.length) // 結果為 4
下標(索引):console.log(arr[0]) // 結果為 12
console.log(arr[2]) //結果為 34
下標還可以是變量或者表達式:var i = 0 console.log(arr[i]) // 結果為 12
console.log(arr[i+2]) //結果為 34
感謝您的閱讀,歡迎留下寶貴的意見!