數(shù)組
一、相關(guān)概念
1克蚂、數(shù)組是值的有序集合闺鲸。
2、每個(gè)值叫做一個(gè)元素
3埃叭、每個(gè)元素在數(shù)組中有一個(gè)位置摸恍,以數(shù)字表示。稱為索引(下標(biāo))赤屋。
二立镶、特點(diǎn)
1、數(shù)組的元素可以是任何類型
2类早、數(shù)組索引從0開始媚媒,最大為2^32-2? 4294967294個(gè)元素
三、創(chuàng)建數(shù)組
1涩僻、使用數(shù)組直接量[]
? ? ? ? var arr = [1,2,3,];
2缭召、使用構(gòu)造函數(shù)
? ? ? ? var arr = new Array(10);10個(gè)元素
? ? ? ? var arr = new Array('a','b','c');
四、數(shù)組的長(zhǎng)度
? ? ? ? arr.length;
? ? ? ? length屬性只計(jì)算非負(fù)整數(shù)的索引
五逆日、數(shù)組元素的訪問和修改
? ? ? ? 使用[]
? ? ? ? 數(shù)字類型的字符串 也可以訪問數(shù)組元素
小實(shí)例:嘗試將數(shù)組中的內(nèi)容放入新的數(shù)組中
六嵌巷、稀疏數(shù)組(稀疏數(shù)組就是不連續(xù)索引的數(shù)組)
1、var arr = new Array(3); -- 是稀疏數(shù)組
2屏富、var arr = [,,]; -- 是稀疏數(shù)組
3晴竞、var arr = [1,2];arr[10]=100; -- 是稀疏數(shù)組
4、使用delete刪除一個(gè)元素 得到稀疏數(shù)組
小實(shí)例:嘗試將稀疏數(shù)組變成不稀疏
七狠半、數(shù)組元素的添加
1噩死、為新索引賦值 arr[4]=2;
2颤难、利用數(shù)組長(zhǎng)度在數(shù)組尾部插入新元素 arr[arr.length]=5;
3、push() 在尾部加入新元素 arr.push(‘a(chǎn)bc’);
4已维、unshift()在前面加入一個(gè)新元素 arr.unshift(‘a(chǎn)bc’);
八行嗤、數(shù)組的刪除
1、刪除數(shù)組后面的一個(gè)元素 delete()不推薦--產(chǎn)生稀疏數(shù)組
2垛耳、pop() 刪除數(shù)組最后一個(gè)元素 arr.pop();
3栅屏、shift() 刪除數(shù)組第一個(gè)元素 arr.shift();
練習(xí)題:自定義一個(gè)函數(shù)驗(yàn)證元素是否在數(shù)組中
九、判斷是否數(shù)組
typeof []; 無法進(jìn)行判斷
ESMA5定義新的方法用來判斷是否數(shù)組: Array.isArray([]);
十堂鲜、搜索數(shù)組是否具有的元素
arr.indexOf();
? ? ? ? 如果存在返回元素位置
? ? ? ? 如果不存在返回-1
十一栈雳、數(shù)組的遍歷
1、使用for循環(huán)遍歷 for(var i = 0; i < arr.length;i++){ console.log(arr[i]); }
2缔莲、使用for/in循環(huán) for(var i in arr){ console.log(arr[i]); }
3哥纫、注意:遍歷稀疏數(shù)組 和 特殊下標(biāo)數(shù)組時(shí)的區(qū)別
4、使用forEach(); 傳入匿名函數(shù)痴奏,低版本IE不支持
十二蛀骇、數(shù)組的方法
1、join()把數(shù)組的元素拼接成字符串 var message = arr.join(‘读拆,’);
2擅憔、concat() 合并多個(gè)數(shù)組
? ? ? ? var message = arr.concat([12,43],[4,35,3]);
? ? ? ? var message = arr.concat(1,2,3);
? ? ? ? var message = arr.concat(1,2,[4,,5,[6,,7]]);
3、slice() 截取數(shù)組中的一部分(不破壞原數(shù)組)檐晕,返回新的數(shù)組
? ? ? ? var arr = list.slice(2);? 取出從下標(biāo)2到后面的所有元素
? ? ? ? var arr = list.slice(2,4); 取出從下標(biāo)2到下標(biāo)4(不含4)的元素>
4暑诸、splice() 刪除、替換棉姐、添加屠列、 破壞原數(shù)組 返回刪除的內(nèi)容
? ? ? ? var new_arr = list.splice(2);? 下標(biāo)2以后的元素
? ? ? ? var new_arr = list.splice(2,2); 下標(biāo)2以后的兩個(gè)元素
? ? ? ? ? ? ? ? 在指定位置添加新的元素
? ? ? ? ? ? ? ? ? ? ? ? var arr = [3,454,435,343];
? ? ? ? ? ? ? ? ? ? ? ? arr.splice(2,0,’abc’);(在435的位置前添加一個(gè)abc)
? ? ? ? ? ? ? ? 替換指定位置的元素
? ? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4];arr.splice(2,1,’abc’);(將3替換成abc)
實(shí)例:使用 splice()方法處理稀疏數(shù)組
5、reverse() 數(shù)組反轉(zhuǎn) 改變?cè)瓟?shù)組
6伞矩、sort(); 數(shù)組排序笛洛,必須使用排序函數(shù) list=[1,334,32,324]; list.sort(function(a,b){return a-b;});
7、toString() 把數(shù)組轉(zhuǎn)換為字符串
8乃坤、toLocaleString()把數(shù)組轉(zhuǎn)換為本地字符串(不常用)
練習(xí):
自定義求數(shù)組最大值的函數(shù)
自定義求數(shù)組最小值的函數(shù)
冒泡排序