JS數(shù)組Array
數(shù)組的創(chuàng)建方式(兩種)
使用new關(guān)鍵字+Array構(gòu)造函數(shù)創(chuàng)建數(shù)組(new操作符可以省略)。
var colors = new Array();
var colors = Array();
`
構(gòu)造函數(shù)傳遞該數(shù)量,而該數(shù)量會(huì)自動(dòng)成為length屬性的值迫摔。
var colors = new Array(20);
console.log(colors.length);//創(chuàng)建了一個(gè)長度為20衰腌,內(nèi)容為空的數(shù)組
數(shù)組字面量由一對包含數(shù)組項(xiàng)的方括號表示("[]"),多個(gè)數(shù)組項(xiàng)之間以逗號隔開誉裆。在讀取和設(shè)置數(shù)組的值時(shí),要使用方括號并提供相應(yīng)的基于0的數(shù)字索引(位置)滩报。
var colors = ["red","blue","green"]; //定義了一個(gè)長度為3的字符串?dāng)?shù)組
console.log(colors.length); //3
console.log(colors[0]); //顯示第一項(xiàng) "red"
colors[2] = "black"; //修改第三項(xiàng)
colors[3] = "brown"; //新增第四項(xiàng)
var colors = []; //創(chuàng)建一個(gè)空數(shù)組
console.log(colors.length); //0
數(shù)組的length屬性
數(shù)組的length屬性的特點(diǎn):不是只讀的。也就是說通過設(shè)置這個(gè)屬性播急,可以從數(shù)組的末尾移除或向數(shù)組中添加新項(xiàng)
var colors = ["red","blue","green"]; //定義了一個(gè)長度為3的字符串?dāng)?shù)組
colors.length = 2; //設(shè)置數(shù)組長度為2
console.log(colors[2]); //undefined
var colors = ["red","blue","green"]; //定義了一個(gè)長度為3的字符串?dāng)?shù)組
colors[colors.length] = "black"; //(在位置3)添加一種顏色
colors[colors.length] = "brown"; //(在位置4)添加一種顏色
`
檢測數(shù)組
1.使用instanceof操作符
var a = [1]
console.log((a)instanceof Array) //true
}
2.Array.isArray()方法
var a = [1]
console.log(Array.isArray(a)) //true
}
屬性:打印出true(真) \ false(假)
`
轉(zhuǎn)換方法
所有對象都具有toLocaleString()脓钾、toString和valueof()方法。
1·toString()方法返回由數(shù)組中每個(gè)值的字符串形式拼接而成的一個(gè)以逗號分隔的字符串;
var arr = [21, 5, 67, 77, 33];
console.log(arr.toString()); //21,5, 67, 77, 33
2·valueOf()返回的還是數(shù)組;
var arr = [21, 5, 67, 77, 33];
console.log(arr.toString()); // [21, 5, 67, 77, 33]
3·toLocaleString()方法也經(jīng)常返回與toString和valueof()方法相同的值,
join(分隔符)數(shù)組轉(zhuǎn)字符串
var arr = [21,5,67,77,33];
console.log(arr.join('')); //215677733
·
棧方法 (后進(jìn)先出)
push()
接收任意數(shù)量的參數(shù)桩警,把它們逐個(gè)添加到數(shù)組末尾可训,并返回修改后數(shù)組的長度。
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.push(1)); // 9 返回修改后的長度
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 1]
pop
從數(shù)組的末尾移除最后一項(xiàng),減少數(shù)組的length值沉噩,然后返回被移除的項(xiàng)捺宗。
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.pop()); // 8 返回移除的值
console.log(arr); // [1,2,3,4,5,6,7] 移除最后一項(xiàng)
·
隊(duì)列方法 (先進(jìn)先出)
unshift()方法
在數(shù)組的前端添加任意個(gè)項(xiàng)并返回新數(shù)組的長度
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.unshift(2)); // 9 返回新數(shù)組的長度
console.log(arr); // [2,1,2,3,4,5,6,7,8]
shift()方法:
從數(shù)組的前端移除第一項(xiàng)(也就是位置索引值為0),減少數(shù)組的length值川蒙,
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.shift()); // 1 把第一項(xiàng)移除
console.log(arr); // [2,3,4,5,6,7,8]
·
重排序方法
reverse()方法: (反轉(zhuǎn)數(shù)組項(xiàng)的順序)
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.reverse()); // [8, 7, 6, 5, 4, 3, 2, 1]
sort()方法: 排序
sort()方法可以接收一個(gè)比較函數(shù)最為參數(shù)蚜厉,以便指定哪個(gè)值位于前面。
var arr= [1,2,3,4,5,6,7,8]
arr.sort(function(a,b){
return b-a //return a-b; //升序 return b-a; //降序
})
console.log(arr)
reverse()和sort()方法的返回值都是經(jīng)過排序后的數(shù)組(改變原數(shù)組)畜眨。
·
操作方法
ECMAScript為操作已經(jīng)包含在數(shù)組中的元素提供了很多方法:
·concat()方法可以基于當(dāng)前數(shù)組創(chuàng)建一個(gè)新數(shù)組昼牛。
· slice()方法可以基于當(dāng)前數(shù)組獲取指定區(qū)域元素并創(chuàng)建一個(gè)新數(shù)組。
·splice()主要用途是向數(shù)組的中部插入元素康聂,使用方式有3種贰健。
concat() 方法
用于連接兩個(gè)或多個(gè)數(shù)組
var arr1 = [1, 2];
var arr2 = [3, 4];
var arr4 = [5, 6];
var arr3 = arr1.concat(arr2,arr4); //逗號隔開
console.log(arr3)
slice()方法
可提取字符串或者數(shù)組的某個(gè)部分,并以新的字符串或數(shù)組返回被提取的部分恬汁。
var arr= [1,2,3,4,5,6,7,8]
var brr= arr.slice(1)
console.log(brr) // [2, 3, 4, 5, 6, 7, 8]
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8]
var arr= [1,2,3,4,5,6,7,8]
var brr= arr.slice(1,4)
console.log(brr) // [ 2, 3, 4]
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8]
splice()方法
用于插入伶椿、刪除或替換數(shù)組的元素
splice中的刪除功能:返回被刪除數(shù)組元素
var arr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.splice(3,2,1)) // [4, 5] (3)下標(biāo) (2)移除個(gè)數(shù) (1)添加
console.log(arr) // [1, 2, 3, 1, 6, 7, 8]
位置方法
首次出現(xiàn)位置
indexOf()
返回某個(gè)指定的字符串值或者某個(gè)數(shù)組元素值在字符串或者數(shù)組中首次出現(xiàn)的位置
var arr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.indexOf(3,1)) // 2
console.log(arr)
lastIndexOf()
返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索
var arr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.lastIndexOf(2,5)) // 1
console.log(arr)