集合
對象:屬性的集合
數(shù)組:值的集合
函數(shù):語句的集合
對象
- 內(nèi)置對象:CMAScript語言的標(biāo)準(zhǔn)
- string
- Number
- Boolean
- Object
- Math
- Date
- RegExp
- 宿主對象:瀏覽器
數(shù)組是什么
- 數(shù)組是對象
- 數(shù)組是值的集合
- 數(shù)組是編程語言的一種基礎(chǔ)數(shù)據(jù)類型缘回。
- 數(shù)組元素:數(shù)組內(nèi)的每個元素都有一個數(shù)值表示的位置,我們稱之為索引。
- 索引:數(shù)組內(nèi)的每個元素都有一個數(shù)值表達示的位置版仔,我們稱之為索引
創(chuàng)建數(shù)組方法有四種:
- 數(shù)組字面量法
- Array()構(gòu)造函數(shù)
- 擴展符
- 工廠方法
數(shù)組字面量法
數(shù)組字面量就是使用方括號包裹的數(shù)組元素余佛,元素之間使用逗號分隔。
let empty = [] //空數(shù)組
let arr1 = [2,3,4,5,7,11] //有5個數(shù)值元素的數(shù)組
let arr2 = [1.1, true, 'a',]//3種不同類型的元素
數(shù)組元素可以是常量,也可以是變量
let num = 1
let table = [num,num+1,num+2,num+3]
拓展符
擴展符:...用于調(diào)用并展開數(shù)組或?qū)ο蟆?br> 用法1:在一個數(shù)組字面量中包含另一個數(shù)組
let a = [1,2,3]
let b = [0,...a,4] // b == [0,1,2,3,4]
用法2:用于快速賦值數(shù)組
let a = [1,2,3]
let b = [...a] //[1,2,3]
b[0] = 0 //不會影響數(shù)組a
a[0]//1
用法3:用于把字符串轉(zhuǎn)數(shù)組
let str = 'hello'
let arr = [...str]
console.log(arr)
讀寫數(shù)組元素
使用[]讀寫數(shù)組元素
let arr = ['蘋果','桔子','西瓜','榴蓮','火龍果','牛油果']
arr[0] //'蘋果'
arr[1] = '荔枝'
arr[1] //'荔枝'
稀疏數(shù)組
密集數(shù)組中的元素都是從索引 0 開始順序排列的膘侮。數(shù)組的長度屬性準(zhǔn)確地指定了數(shù)組中元素的數(shù)量塔嬉。
稀疏數(shù)組就是元素不連續(xù)的數(shù)組玩徊,它們并不總是從 0 開始租悄。它們本質(zhì)上是帶有“孔”的。數(shù)組的長度屬性會準(zhǔn)確返回數(shù)組中元素的數(shù)量恩袱,但在稀疏數(shù)組中則不會泣棋。
let arr = []
arr[2] = 'hello'
console.log(arr.length) //3 實際只有一個數(shù)組元素
產(chǎn)生稀疏數(shù)組的情況
- new Array()
- delete刪除符
數(shù)組長度
Array.length 返回數(shù)組的長度,也就是數(shù)組元素的數(shù)量畔塔。
- 用法1:查詢數(shù)組長度
let arr = [1,2,3,4,5]
arr.length
- 用法2:查詢最后一個數(shù)組元素
arr[arr.length - 1]
- 用法3:刪除數(shù)組元素
arr.length = 3
- 用法4: 創(chuàng)建稀疏數(shù)組
arr.length = 10
arr // [1,2,3,4,5,,,,,]
添加數(shù)組元素
- 方法1:使用索引賦值
let arr = [1,2,3]
arr[arr.length] = 4
方法2:使用push方法
方法3:使用unshift()方法
刪除數(shù)組元素
方法1:pop方法
方法2:shift方法
方法3:delete方法
let arr = [3, 1, 4, 1, 5];
console.log("1" in arr);
delete arr[1]; //delete刪除的是數(shù)組元素潭辈,刪除后索引位置還在
console.log("1" in arr);
arr.length // => 3 不影響數(shù)組長度
let obj = { x: 1, y: 2 };
console.log("x" in obj);
delete obj.x; //delete刪除的是屬性,刪除后就屬性就不存在了澈吨。
console.log("x" in obj);
- 方法4: length屬性
let arr = [1,2,3]
arr.length = 2 // [1,2]
- 方法5: splice()方法
定義
Array.slpice()方法用于修改數(shù)組把敢。修改包括:
增加數(shù)組元素
刪除數(shù)組元素
替換數(shù)組元素
語法
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2, itemN)
splice(參數(shù)1,參數(shù)2,參數(shù)3)//1:刪除數(shù)組的起始位置
splice(1,2)//2:刪除數(shù)組元素的數(shù)量
splice(1,2,'a','b','c')//'a':要添加的元素
splcie(1,0,'b','c')//0:要做添加的操作,而不刪除任何元素
參數(shù)1:刪除的元素位置
參數(shù)2:刪除的元素數(shù)量
參數(shù)3:添加的元素
參數(shù)2是0:表示刪除0個
遍歷數(shù)組
方法1:使用for循環(huán)遍歷數(shù)組
遍歷數(shù)組:從前向后
let arr = [1,2,3,4,5]
for(let i=0;i<arr.length;i++)
{
console.log(arr[i])
}
遍歷數(shù)組:從后向前
let arr = [1,2,3,4,5]
for(let i=arr.length-1;i>=0;i--)
{
console.log(arr[i])
}
遍歷數(shù)組:隔一個遍歷
let arr = [1,2,3,4,5]
for(let i=0;i<arr.length;i+=2)
{
console.log(arr[i])
}
let arr = [30, 18, 20, 10, 40, 17, 19, 50, 60];
let arr2 = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] >= 18) {
arr2.push(arr[i]);
}
}
console.log(arr2);
方法2: 使用for/in遍歷數(shù)組
let arr2 = [1,2,3,4,5]
for(let attr in arr2){
console.log(attr)//{'0':1,'1':2,}輸出的是字符串屬性名
console.log(arr2[attr]) //輸出的是數(shù)組元素
}
方法3: 使用for/of遍歷數(shù)組
let arr = [...'Hello world']
let str = ''
for(let element of arr){
str += element
}
str // => 'Hello world'
方法3:forEach()
方法4:map()
方法5:filter()