數(shù)組
有序的元素序列脖隶,一組數(shù)據(jù)的集合,或者可以理解為用來(lái)在單個(gè)變量中儲(chǔ)存多個(gè)值
例如:
var arr = [1,2,3];
arr[0] = 1;
1.創(chuàng)建數(shù)組
參數(shù)介紹:
- 傳一個(gè)數(shù)字類型,代表創(chuàng)建的數(shù)組的長(zhǎng)度,或者可以理解為有多少個(gè)元素的數(shù)組
- 不能傳入NaN,因?yàn)镹aN也是一個(gè)數(shù)字類型柿顶,但是不能拿到具體的長(zhǎng)度,會(huì)報(bào)出錯(cuò)誤
- 傳入其他類型操软,會(huì)直接當(dāng)做數(shù)組的元素返回一個(gè)數(shù)組
數(shù)組創(chuàng)建方式有三種如:
var arr = [1,2,3];
var arr = new Array(1,2,3);
var arr = Array(1,2,3)
2.數(shù)組的方法
方法名稱 |
使用方法介紹 |
concat() |
連接兩個(gè)或以上數(shù)組嘁锯,返回一個(gè)新數(shù)組。 |
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var a = arr1.concat(arr2);
console.log(a); // [1,2,3,4,5,6];
join() |
把數(shù)組中的所有元素放入一個(gè)字符串聂薪,并以指定字符分割返回一個(gè)字符串家乘,也可以理解為把數(shù)組轉(zhuǎn)換字符串。 |
var arr = [ "hello", "world"];
arr.join(); // "hello, world"
arr.join(""); // "helloworld"
arr.join(","); // "hello, world"
pop() |
刪除數(shù)組中的最后一個(gè)元素藏澳,返回刪除的元素 會(huì)改變?cè)袛?shù)組 |
var arr=["hellow", "world"];
var aa1=arr.pop();
console.log(aa1); // "world"
console.log(arr); // ["hellow"]
push() |
向數(shù)組的最后末尾添加一個(gè)或多個(gè)元素仁锯,返回一個(gè)長(zhǎng)度 會(huì)改變?cè)袛?shù)組。 |
var arr=["hellow", "world"];
var aa1=arr.push ("haha");
console.log(aa1); // 3
console.log(arr); // ["hellow", "world", "haha"]
reverse() |
顛倒數(shù)組元素的順序 會(huì)改變?cè)袛?shù)組 |
var arr=[1,2,3,4,5];
var aa1=arr.reverse();
console.log(aa1); // [5, 4, 3, 2, 1]
console.log(arr); // [5, 4, 3, 2, 1]
shift() |
刪除數(shù)組中的第一個(gè)元素翔悠,返回刪除的元素 會(huì)改變?cè)袛?shù)組 |
var arr=[1,2,3,4,5];
var aa1=arr.shift();
console.log(aa1); // 1
console.log(arr); // [2, 3, 4, 5]
slice() |
接收2個(gè)參數(shù),對(duì)數(shù)組中的元素進(jìn)行截取业崖,返回一個(gè)新數(shù)組,為截取后的元素的集合 |
//slice(start,end): 接收2個(gè)參數(shù):
//start: 必須蓄愁,指定起始索引双炕,若負(fù)數(shù)則從數(shù)組最后開始算起, -1為倒數(shù)第一位撮抓, -2為倒數(shù)第二位妇斤,以此類推。
//end: 可選丹拯,指定結(jié)束索引趟济,若沒傳則表示到數(shù)組結(jié)束
var arr=[1,2,3,4,5];
var aa1=arr.slice(2);
var aa2=arr.slice(2,3);
console.log(aa1); // // [3]
sort() |
對(duì)數(shù)組中的元素進(jìn)行排序 會(huì)改變?cè)袛?shù)組 |
//可接受一個(gè)回調(diào)方法作為比較函數(shù),來(lái)決定排序方式咽笼。
//比較函數(shù)應(yīng)該具有兩個(gè)參數(shù) a 和 b,返回值如下:
//若 a 小于 b戚炫,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前剑刑,則返回一個(gè)小于 0 的值。 若 a 等于 b双肤,則返回 0施掏。 若 a 大于 b,則返回一個(gè)大于 0 的值茅糜。
var arr = [1, 3, 6, 9, 10];
arr.sort();
console.log(arr.sort()); // [1, 10, 3, 6, 9]
arr.sort(function (a, b) {
return a > b ? 1 : a < b ? -1 : 0;
})
console.log(arr);// [1, 3, 6, 9, 10]
splice() |
對(duì)數(shù)組中的元素進(jìn)行截取七芭,返回一個(gè)新數(shù)組,為截取后的元素的集合 |
//語(yǔ)法: arr.splice(index,num,a1,a2,...,an);
//參數(shù):
//index: 必需蔑赘,起始位置的索引狸驳,若負(fù)數(shù)則從數(shù)組最后開始算起预明;
//num:必需,刪除的數(shù)量耙箍,若為0則不刪除撰糠;
//a1,a2,...an:可選,為數(shù)組添加的元素辩昆;
var arr = [1,2,3,4,5];
var a = arr.splice(1,2,"hellow");
console.log(arr); //[1, "hellow", 4, 5]
console.log(a); //[2, 3]
toString() |
把數(shù)組中的元素轉(zhuǎn)為字符串阅酪,返回一個(gè)字符串 |
var arr = [1, 2, 3, 4, 5];
var aa1 = arr.toString();
console.log(aa1); // '1,2,3,4,5'
console.log(arr); // [1, 2, 3, 4, 5]
unshift() |
向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長(zhǎng)度汁针。 |
var arr = [1, 2, 3, 4, 5];
var aa1 = arr.unshift(88);
console.log(aa1); // 6
console.log(arr); // [88, 1, 2, 3, 4, 5]
indexOf() |
在數(shù)組中搜索指定元素并返回第一個(gè)匹配的索引 |
var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var aa1 = arr.indexOf(2);
console.log(aa1); // 1
console.log(arr); // [1, 2, 3, 4, 5, 4, 3, 2, 1]
lastIndexOf() |
在數(shù)組中搜索指定元素并返回最后一個(gè)匹配的索引 |
var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var aa1 = arr.lastIndexOf(2);
console.log(aa1); // 7
console.log(arr); // [1, 2, 3, 4, 5, 4, 3, 2, 1]