數(shù)組對象常用方法
1. push 向數(shù)組的末尾添加一個或更多元素,并返回新的長度馏予。
2.unshift 向數(shù)組的開頭添加一個或更多元素孽水,并返回新的長度舅逸。
3.pop 刪除數(shù)組的最后一個元素并返回刪除的元素。
4.shift 刪除并返回數(shù)組的第一個元素(知道即可,用得很少)坦刀。
5.reverse 反轉數(shù)組的元素順序。
6.find 返回符合傳入測試(函數(shù))條件的數(shù)組元素。
7.findIndex 返回符合傳入測試(函數(shù))條件的數(shù)組元素索引褪那。
8.slice 選取數(shù)組的的一部分,并返回一個新數(shù)組式塌。
9.splice 從數(shù)組中添加或刪除元素博敬。
10.join 把數(shù)組的所有元素放入一個字符串。
11.forEach 迭代數(shù)組峰尝。
12.map 通過指定函數(shù)處理數(shù)組的每個元素偏窝,并返回處理后的數(shù)組。
13.filter 檢測數(shù)值元素,并返回符合條件所有元素的數(shù)組祭往。
14.indexOf 搜索數(shù)組中的元素伦意,并返回它所在的位置。
15.includes 判斷一個數(shù)組是否包含一個指定的值
16.isArray 判斷對象是否為數(shù)組硼补。
17.sort 數(shù)組排序
-
具體例子
- push 從后面添加一個成員
var arr = [1,2,3]; arr.push(4); console.log(arr); // [1,2,3,4]
- unshift 從數(shù)組前面添加一個成員
var arr = [1,2,3]; arr.unshift(0); console.log(arr); //[0,1,2,3,4]
- pop 刪除數(shù)組的最后一個成員
var arr = [1,2,3,4]; arr.pop(); console.log(arr); // [1,2,3]
4.shift 刪除數(shù)組的第一個成員
var arr = [1,2,3,4]; arr.shift(); console.log(arr); // [2,3,4]
5.reverse 反轉數(shù)組的元素順序
var arr = [1,2,3]; arr.reverse(); console.log(arr); // [3,2,1]
6.find 查找符合條件的數(shù)組成員
var arr = [ { name: '鄧紫棋', age: 20 }, { name: '張碧晨', age: 30 }, { name: '張靚穎', age: 25 }, { name: '薛之謙', age: 28 } ] // js5寫法 var person = arr.find(function(item) { return item.name === '薛之謙'; }) // es6寫法 var person = arr.find(item => { return item.name === '薛之謙'; }) console.log(person); // { name: "薛之謙", age: 28 }
7.findIndex 返回符合條件的成員在數(shù)組中的位置(下標)
var arr = [ { name: '鄧紫棋', age: 20 }, { name: '張碧晨', age: 30 }, { name: '張靚穎', age: 25 }, { name: '薛之謙', age: 28 }, ] // js5 var index = arr.findIndex(function(item) { return item.name === '張靚穎'; }) // es6 var index = arr.findIndex(item => { return item.name === '張靚穎'; }) console.log(index); // 2
8.slice 選取數(shù)組的的一部分驮肉,并返回一個新數(shù)組。
var arr = [1,2,3,4,5]; var newArr1 = arr.slice(2); // 從位置2(包含)開始截取到最后 console.log(newArr1); // [3,4,5] var newArr2 = arr.slice(2,4); // 從位置2(包含)開始截取到位置4(不包含) console.log(newArr2); // [3,4]
9.splice 刪除或添加元素
// 例1 var arr = [0,1,2,3,4,5]; arr.splice(2,1); // 從下標為2的元素開始,刪除一個元素 console.log(arr); // [0,1,3,4,5]; // 例2 var arr = [0,1,2,3,4,5]; arr.splice(2,2); // 從下標為2的元素開始,刪除2個元素 console.log(arr); // [0,1,4,5]; // 例3 var arr = [0,1,2,3,4,5]; arr.splice(2,0,'我是新成員'); // 在下標為2地方添加一個新成員 console.log(arr); // [0, 1, "我是新成員", 2, 3, 4, 5] // 例4 var arr = [0,1,2,3,4,5]; arr.splice(2,1,'我是新成員'); // 用新成員替換下標為2的成員 console.log(arr); // [0, 1, "我是新成員", 3, 4, 5]
10.join 把數(shù)組變成字符串
var arr = ['a','b','c']; var str = arr.join('-'); console.log(str); // "a-b-c" var str2 = arr.join(','); console.log(str2); // "a,b,c"
11.forEach 迭代數(shù)組(遍歷數(shù)組)
var sum = 0; var arr = [ {name: '小王',age: 10}, {name: '小李',age: 20}, {name: '小林',age: 15}, {name: '小明',age: 25} ] // 計算這幾個同學的總年齡 var sum = 0; arr.forEach(item=> { sum += item.age; }) console.log(sum);
12.map 通過指定函數(shù)處理數(shù)組的每個元素已骇,并返回處理后的數(shù)組离钝。
<script type="text/javascript"> var arr = [ { name: '張三', age:28 }, { name: '李四', age:28 }, { name: '陳武', age:28 } ]; // js5 var newArr = arr.map(function(item){ return { username: item.name, age: item.age+10 }; }) console.log(newArr); // es6 var newArr = arr.map(item=>{ return { username: item.name, age: item.age+10 }; }) console.log(newArr); </script>
13.filter 過濾
var arr = [ {name: '小王',age: 10}, {name: '小李',age: 20}, {name: '小林',age: 15}, {name: '小明',age: 25} ]; // 找出年齡大于或等于20歲的同學 // js5 var newArr = arr.filter(function(item){ return item.age >= 20; }); console.log(newArr); // [{小明}, {小李}] // es6 var newArr = arr.filter(item=> { return item.age >= 20; }); console.log(newArr); // [{小明}, {小李}]
14.indexOf 返回數(shù)組中某個成員的位置
var arr = ['a','b','c','d']; var index = arr.indexOf('c'); console.log(index); // 2 var index2= arr.indexOf('f'); console.log(index2); // 找不到返回-1
15.includes 判斷一個數(shù)組是否包含一個指定的值
var arr = ['a','b','c','d']; var b1 = arr.includes ('c'); console.log(b1); // true var b2 = arr.includes ('f'); console.log(b2); // false
16.isArray 判斷一個對象是不是數(shù)組
// typeof 一個數(shù)組的結果是object,要判斷一個變量是不是數(shù)組可以用isArray var obj = { a: 2 } Array.isArray(obj); // false var arr = [1,2,3]; Array.isArray(arr); // true
17.sort 數(shù)組排序
// 例1 var arr = [1,6,3,4]; arr.sort(); console.log(arr); // [1, 3, 4, 6] // 例2 通過排序函數(shù) var arr = [10,5,40,25,1000,1] // 升序排列 // js5 arr.sort(function(a,b){ return a-b; }) // es6 arr.sort((a,b)=> { return a-b; }) console.log(arr); // [1, 5, 10, 25, 40, 1000] // 降序排列 // js5 arr.sort(function(a,b) { // 升序排列 return b-a; }) console.log(arr); // [1000, 40, 25, 10, 5, 1] // es6 arr.sort((a,b)=> { // 升序排列 return b-a; }) console.log(arr); // [1000, 40, 25, 10, 5, 1]
棧操作
棧操作的原則是先進后出,我們可以使用數(shù)組的push和pop方法來實現(xiàn)棧操作
-
push方法我們可以稱它為入棧的方法,var arr = []; arr.push('a'); console.log(arr); arr.push('b'); console.log(arr); arr.push('c'); console.log(arr); ['a','b','c'] var m1 = arr.pop(); // 刪除最后一個 console.log(m1); // c var m2 = arr.pop(); console.log(m2); // b var m1 = arr.pop(); console.log(m3); // a
pop方法我們可以稱它出棧的方法,
這兩者我們就統(tǒng)稱棧方法.