js陣列API和字串API彙總
一、陣列API
1. 連線:arr.join("連線符")
用連線符把數組裡面的元素連線成字串。
arr.join("")能無縫連線。
2. 拼接:arr.concat("a","b",arr1)
強調:(1)不會修改原陣列,返回新陣列。
(2)concat方法中的陣列會被打散為單個元素再拼接。
3. 擷取:arr.slice(start[,end])
強調:(1)不會修改原陣列,返回新的子陣列。
(2)含頭不含尾。
(3)省略第二個引數表示從start位置開始一直擷取到末尾。
(4)支援負數,表示倒數第幾個。
4. 刪除、插入、替換:arr.splice(start,n[,value1,value2...])
強調:(1)直接修改原陣列。
(2)返回所有被刪除元素組成的子陣列。
(3)如果是插入,刪除了0個數,那麼從start位置開始以及之後的元素會被順移。
5. 翻轉陣列:arr.reverse()
強調:(1)直接修改原陣列。
6. 陣列排序:arr.sort()
強調:(1)直接修改原陣列。
(2)預設按照陣列元素第一位的ASCII碼從小到大排列。
(3)可以設定下列的比較器函式來控制升序,降序或者打亂。
(4)arr.sort(function(a,b){return a-b;}); 升序(只限陣列中是數字或者數字字串)。
(5)arr.sort(function(a,b){return b-a;}); 降序(只限陣列中是數字或者數字字串)。
(6)arr.sort(function(){
return Math.random()>.5 ? 1 : -1;
});隨機打亂陣列(陣列中可以是任何資料型別)
7. 查詢:arr.indexOf(value[,from])或arr.lastIndexOf(value[,from])
強調:(1)返回value在陣列中的位置,沒有找到返回-1。
8. 是否有符合的:arr.some(function(value,index,arr){
return value > 7;
})
強調:(1)判斷陣列中有沒有符合條件的元素,只要遇到符合條件的就退出迴圈。
(2)返回boolean值。
9. 是否都符合:arr.every(function(value,index,arr){return value > 7;})
強調:(1)判斷陣列中的元素是否都符合條件。
(2)返回boolean值。
10. 過濾陣列:arr.filter(function(value,index,arr){return value > 7;})
強調:(1)過濾陣列,返回符合條件的元素組成的新陣列。
11. 迴圈陣列,無返回值:arr.forEach(function(value,index,arr){})
12. 迴圈陣列,有返回值:arr.map(function(value,index,arr){})
13.彙總:arr.reduce(function(prev,value,index,arr){
return prev + value;
})
返回數組裡面所有元素相加的和。prev是之前那些元素的和。
14. 陣列轉字串:String(arr)或arr.toString()
將陣列中的元素用逗號連線成字串,類似於arr.join(",")。
15. 開頭入棧:arr.unshift(value)
在陣列的最開頭插入元素。
強調:(1)修改原陣列。
(2)返回新陣列的length。
16. 開頭出棧:arr.shift()
彈出陣列最開頭的元素。
強調:(1)修改原陣列。
(2)返回被彈出的元素。
17. 結尾入棧:arr.push(value1[,value2,arr1])
在陣列末尾追加元素。
強調:(1)修改原陣列。
(2)返回新陣列的length。
(3)追加進去的陣列不會被打散。
18. 結尾出棧:arr.pop()
彈出陣列最末尾的元素。
強調:(1)修改原陣列。
(2)返回被彈出的元素。
二、字串API
1. 擷取:str.slice(from[,end])或str.substring(start[,end])或str.substr(start[,length])
強調:(1)slice和substring用法類似,只是slice支援負數,而substring的負數會被轉換成0,然後擷取0和start之間字元。
(2)substr的start支援負數。
2. 分割:str.split("分割符")
把字串以分割符為界點分割成陣列。
3. 查詢:str.indexOf(value[,from])或str.lastIndexOf(value[,from])
強調:(1)indexOf()只查詢第一個,找不到返回-1。
4. 替換:str.replace("被替換字元","替換字元")
強調:(1)只會替換第一個,如果要替換所有符合條件的字元可以使用正則g。
5. 拼接:str.concat(value)
把value拼接到str上,效果類似於str+value
6. 獲取指定位置字元:str.charAt(index)或str[index]
7. 去掉字串前後空格:str.trim()
8. 字串轉ASCII:str.charCodeAt(index)
9. ASCII轉字串:String.fromCharCode(Unicode)
10. 轉大寫字母:str.toUpperCase()
11. 轉小寫字母:str.toLowerCase()
三、4種字串“查詢”方法的對比
1. str.indexOf(value[,from])
強調:(1)只能查詢第一個匹配的位置,沒找到返回-1,可用迴圈改變from查詢所有。
2. str.search(reg)
強調:(1)僅判斷有沒有。
(2)只返回第一個匹配的位置,沒找到返回-1。
(3)支援正則(不支援g,支援i)。
3. str.match(reg)
強調:(1)返回所有正則匹配的字串組成的陣列,沒找到返回null。
(2)支援正則,正則表示式必須帶g,才能返回所有匹配的字串。
4. reg.exec(str)
既能找到關鍵詞的位置,又能獲得內容。
強調:(1)支援正則,找不到返回null。
(2)若要查詢所有正則必須加g,不加g只能查詢第一個,而且要放進迴圈裡面。
var str = "大5家好5,謝6謝!";
var reg = /[\d]/g;
console.log(str)
var arr = null;
while((arr = reg.exec(str)) !== null){
console.log(arr)
}