數組(Array)經常使用方法;vue
數組經常使用的方法:concat(),every(), filter(), forEach(), indexOf(), join(), lastIndexOf(), map(), pop(), push(), reduce(), reduceRight(), reverse(), shift(), slice(), some(), sort(), splice(), toLocaleString(), toString(), unshift(),其中every(),filter(),forEach(), indexOf(), lastIndexOf(),map(), reduce(), reduceRight()和some ECMAScript 5新增的方法。java
var arr1 = [1,2,3]; var arr2 = [4,5,6]; var arr3 = [7,8]; arr1.concat(arr2); // [1, 2, 3, 4, 5, 6] arr1.concat(arr2,arr3); //鏈接多個數組,[1, 2, 3, 4, 5, 6, 7, 8] arr1 // [1,2,3]
var arr = [1,2,3]; arr.join(); // "1,2,3" 默認爲逗號 arr.join(''); // "123" arr.join('|') // "1|2|3" arr // [1,2,3]
var arr = [1,2,3,4,5,6,7,8]; arr.slice(0,3); // [1, 2, 3] arr.slice(3,5); // [4, 5] arr.slice(4) // [5, 6, 7, 8] arr.slice(3,-1); // [4, 5, 6, 7] arr.slice(-3,-2) // [6]
var arr = [1,2,3,4,5,6,7,8,9] arr.splice(8) // [9] 一位參數默認截取到最後 arr //[1, 2, 3, 4, 5, 6, 7, 8] arr.splice(1,0) // [] 第二個參數爲0,不會刪除數組元素 arr // [1, 2, 3, 4, 5, 6, 7, 8] arr.splice(-1) // [8] 起始爲負數 arr.splice(6,0,'javaScript') // [] arr // [1, 2, 3, 4, 5, 6, "javaScript", 7] arr.splice(6,2,'Vue') // 刪除項["javaScript", 7] 替換元素 arr // 原數組[1, 2, 3, 4, 5, 6, "Vue"]
var arr = ['javaScript','HTML','Css']; arr.push('Vue'); // 4 arr // ["javaScript", "HTML", "Css", "Vue"] arr.push('Sass','Jq') // 6 arr // ["javaScript", "HTML", "Css", "Vue", "Sass", "Jq"]
pop()方法刪除數組的最後一個元素,減小數組長度並返回刪除的值。數組
var arr = ['JavaScript','Vue','React']; arr.pop() // "React" arr // ["JavaScript", "Vue"]
var arr = []; arr.unshift('Vue','JavaScript'); // 2 arr; // ["Vue", "JavaScript"]
var arr = ['JavaScript','Vue','React']; arr.shift(); // "JavaScript" arr; //["Vue", "React"]
var arr = ['JavaScript','Vue','React'] arr.reverse() // ["React", "Vue", "JavaScript"] arr //["React", "Vue", "JavaScript"]
sort() 方法將數組中的數組排序並返回排序後的數組(升序排列),sort()方法會調用每一個數組項的toString()方法轉換成字符串,而後比較獲得後的字符串,已肯定排列順序;
(a) 若是數組裏面的內容爲字母,則以字母表的順序排列(按照字符編碼的順序進行排序)。ide
var arr = ["React", "Vue", "JavaScript"]; arr.sort(); // ["JavaScript", "React", "Vue"]
(b) sort(sortFun) 參數sortFun 爲一個函數函數
var arr = [78,56, 99, 9, 44,123,45,555,678,999,12,123]; arr.sort(); // [12, 123, 123, 44, 45, 555, 56, 678, 78, 9, 99, 999] 未傳入函數參數 --------------------------------------------------- var arr = [78,56, 99, 9, 44,123,45,555,678,999,12,123]; arr.sort(function(a,b){ return a - b; // 返回 負數,0, 正數 }) // [9, 12, 44, 45, 56, 78, 99, 123, 123, 555, 678, 999]
[1,2,3].toString(); //"1,2,3" ['JavaScript','Vue','React'].toString(); //"JavaScript,Vue,React" [1,['JavaScript','Vue',{'title':'標題'}],2].toString(); // "1,JavaScript,Vue,[object Object],2"
toLocaleString()方法 把數組轉換爲本地字符串;編碼
[1,2,3].toLocaleString() // "1,2,3" [new Date()].toLocaleString(); // "2018/6/2 上午11:50:12"
ECMAScript 5定義了9個新的數組方法來遍歷、映射、過濾、檢測、簡化和搜索數組;spa
var data = [1,2,3,4,5,6]; var sum = 0; data.forEach((item) => { sum += item; // 求和 }); sum // 21 // 每一個數組元素自加1 data.forEach((item,index,list) => { list[index] = item + 1; }); data /// [2, 3, 4, 5, 6, 7] ------------------------------------ // 注意: forEach() 對於空數組是不會執行回調函數的 var data = []; data.forEach((item) => { console.log(item) // 不執行 }) // 注意,非數組調用報錯 var data = ''; data.forEach((item) => { })
map() 方法按照原始數組元素順序依次處理元素。code
注意: map() 不會對空數組進行檢測。blog
注意: map() 不會改變原始數組。排序
var arr = [2,3,4,5,6,7,8]; var mapArr = arr.map((item) => { return Math.pow(item,3); // 返回每一項的的3次冪 }); mapArr // [8, 27, 64, 125, 216, 343, 512] arr // [2, 3, 4, 5, 6, 7, 8] 原數組不發生改變
true
的數組元素放進一個新數組中並返回。var arr = [2,4,6,8,10,15]; // 取數組小於 6 或者 大於 12 的數 arr.filter((item) => { return item < 6 || item > 12; // [2, 4, 15] }) // 取數組能整除2的數 arr.filter((item) => { return item%2 == 0; // [2, 4, 6, 8, 10] })
var arr = [1,2,3,4,5,6,7,8]; // 全部值小於10 arr.every((item) => { return item < 10; // true }); arr.every((item) => { return item < 4; // false })
some() 方法 當數組中至少存在一個元素調用斷定函數返回true,它就返回true。
some() 方法會依次執行數組的每一個元素:
var arr = [2,4,6,8,10,15]; arr.some((item) => { return item < 2; // false }) arr.some((item) => { return item < 4; // true })
var arr = [1,2,3,4,5,6,7,8]; // 求和 arr.reduce((x,y) => { return x + y; },0); // 求最大值 arr.reduce((x,y) => { return x>y ? x : y; // 8 })
reduceRight()原理與reduce()同樣,不一樣的是reduceRight()按照數組從高到低處理數組。
var arr = [2,3,4]; //2^(3^4) 乘方從右到左 arr.reduceRight((x,y) => { return Math.pow(y,x); // 2.4178516392292583e+24 // return Math.pow(x,y); // 4096 })
var arr = ['javaScript','Vue','React','CSS3']; arr.indexOf('vue') // -1 arr.indexOf('CSS3'); // 3 arr.lastIndexOf('CSS3'); // 3 arr.lastIndexOf('Vue'); // 1