陣列,字串的常見操作
陣列:
第一:讀取陣列 for迴圈
方法如下:
var ay=[1,"sdsd","sdsd"]
for (var i=0;i<ay.length;i++) {
console.log("index:"+i+" "+ay[i]) //index:0 1 index:1 sdsd index:2 sdsd
}
第二:合併陣列 concat
方法如下:
var arr1=['w','e','s'];
var arr2=['e','y','u'];
var arr3=arr1.concat(arr2);
console.log(arr3) //['w','e','s''e','y','u'];
第三:陣列變為字串格式 join
方法如下:
var arr1=['w','e','s'];
var arr4=arr1.join()
console.log(arr4) //w,e,s
第四:刪除最後一個元素,針對老陣列是刪除最後一個,針對新陣列是返回最後一個 pop
var arr6=["d","s","t"];
var arr7=arr6.pop();
console.log(arr6) // ["d","s"];
console.log(arr7);// t
第五:新增最後一個元素,針對老陣列最後一個元素後面新增一個元素,新陣列返回元素個數 push
var arr8=["i","u","t"];
var arr9=arr8.push("k");
console.log(arr8); //["i","u","t","k"];
console.log(arr9); // 4
第六:刪除最後一個元素,針對老陣列是刪除第一個,針對新陣列是返回第一個 shift()
var arr6=["d","s","t"];
var arr7=arr6.pop();
console.log(arr6) // ["s","t"];
console.log(arr7);// d
第七:新增一個元素,針對老陣列第一個元素前面新增一個元素,新陣列返回元素個數 unshiift()
var arr8=["i","u","t"];
var arr9=arr8.push("k");
console.log(arr8); //["k","i","u","t"];
console.log(arr9); // 4
第八:反轉陣列 reverse
方法如下:
var arr1=['w','e','s'];
var arr10=arr1.reverse()
console.log(arr10) //['s','e','w'];
第九:陣列排序 sort a-b正向 b-a 反向
正向
var arr11=[3,1,5,8,28]
var arr12=arr11.sort(function (a,b) {
return a-b;
})
console.log(arr12) //[1,3,5,8,28];
反向
var arr13=arr11.sort(function (a,b) {
return b-a;
})
console.log(arr13) //[28,8,5,3,1]
第十:陣列擷取 陣列擷取的方法主要有slice 和splice,另外說到擷取我這裡隨便也把字串擷取帶上,字串擷取的方法主要有substr 和substring
(1)slice 使用方法arr.slice(m,n);其中arr為陣列,m,n為兩個引數,意思是從已有陣列中返回選定的元素,擷取位置均為下標,其中m必須為起始位置,可以為負值,n為結束位置(擷取位置並不包含)。
示例如下:
①只有起起始值,並且為正,預設的從起始位置一直到整個陣列結束,起始下標從0開始
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(1)
console.log(arr) // [2,3,5,6,8,9] 老陣列是沒有變化的,下面不在列舉,都是一樣的
console.log(arr1) //[3,5,6,8,9] 只有起始引數,並且為正值,返回新陣列從下標1開始擷取
②只有起始值,並且為負,預設的是從起始位置一直到整個陣列結束,此處沒有起始值,陣列的最後一個下標是-1,比如此例,如果從-6開始取,必定是整個陣列
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1)
console.log(arr1) //[9] 只有起始引數,並且為負值,從陣列尾部擷取元素
③有起始值和結束值,並且為正,此處需注意下標是從小到大,比如你(3,1)肯定是取不到值的,另外擷取的下標個數並不包含最後一個下標
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(1,4)
console.log(arr1) //[3,5,6] 此時是從下標1開始到下標4,但是需要注意的是並不包含下標4,準確的說是1-3的下標
④有起始值和結束值,並且為負,此處需注意下秒也是從小到大,同理,比如(-1,-6)也是肯定取不到值的,另外擷取的下標個數也並不包含最後一個下標
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-6,-1)
console.log(arr1) //[2,3,5,6,8]
⑤有起始值和結束值,並且正負都有
負值到0
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1,0)
//剛剛都看到了,陣列下標都是從小到大的,所以說如果正負都有的情況下,理論上應該可以取值的,比如這個例子,-1為9的小標,0為2的下標,所以取值應該為 [9],但是結果並不是這樣的
console.log(arr1) //[ ] 從這裡可以看出他的結果是為空的,所以從負值到0結果是取不到的
負值到正直
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1,2)
//那從負值到正值呢,同樣也是取不到值的
console.log(arr1) //[ ]
正直到負值
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(2,-1)
//那從正直到負值,這個理論上是取不到的,但是看下結果
console.log(arr1) //[ 5,6,8] 從結果可以看出是可以取的 原理是2的下標為5,-1的下標為9,不包含結束位置下標
總結:這個方法看著可能會麻煩些(也可能被我寫的麻煩啦),比如正到負等,不知道大家都是怎麼操作,我一般用這個取值都是隻擷取正的,所以這個實際操作還是非常簡單的。
(2)splice 像陣列中新增或者刪除元素 arr.splice(m,n,index,index1,...,indexx) m是起始位置,n是刪除元素的個數,index是要新增的元素,在不新增元素的前提下,只有第一個引數是必須的,後面兩個都不是必須的,在需要新增元素的情況下,三個元素都是必須的,此方法和slice是不一樣的,這個返回的是被刪除的元素
示例如下:
只刪除不新增
注意看此例,是(1,2)刪除兩個,如果是(1,0),則表示刪除零個,也就是不刪除的意思,如果只有一個引數則表示從這裡開始刪除,比如是(1)則為[2],當然這個也是可以取負值,但是這個和slice是不一樣的,只能起始位置取負值,因為刪除的個數不可能為負值,,比如(-1,0)則表示從-1開始刪除零個,結果為[2,3,5,6,8,9],(-6,2),結果為[5,6,8,9],另外這個刪除的第二個值如果寫的過大,也只是刪除從本下標到最後一個,比如(2,78)為[2,3]
var arr=[2,3,5,6,8,9]
var arr1=arr.splice(1,2)
console.log(arr) // [2,6,8,9] 注意看此處才是我們要的陣列,從下標1開始刪除刪除兩個
console.log(arr1) //[3,5] 此處是我們刪除掉的陣列
刪除加新增 具體的和上面的差不多,主要添加了新增元素的效果,這個也可以新增多個元素
var arr=[2,3,5,6,8,9]
var arr1=arr.splice(1,2,"il")
console.log(arr) //[2,"li",6,8,9]
console.log(arr1) //[3,5]
總結:此方法用的時候,一般也都是隻取正值
字串:
(3)substr 這個是字串的用法 用法arr.substr(m,n) m必選也可以負值 n選填,注意看這個並不是結束為止而是擷取的個數
示例如下:
只有一個引數 預設從此下標開始,取後面所有的
正值
var arr="sdhgfhf"
var arr1=arr.substr(1)
console.log(arr)// "sdhgfhf"這個是不變的,下面不再列舉
console.log(arr1)// "dhgfhf" 從下標1開始取後面所有的
負值
var arr="sdhgfhf"
var arr1=arr.substr(-2)
console.log(arr1)// "hf" 從下標-2開始取後面所有的
兩個引數,從第一個下標開始,擷取到下標2的長度
var arr="sdhgfhf"
var arr1=arr.substr(1,3)
console.log(arr1)// "dhg" 從下標1開始取後面所有的 同理如果為負值,比如(-6,3)則為"hjf";後面的始終為長度
總結:此方法需注意不要和陣列的混淆,這個是擷取長度的
(4)substring 用法arr.substring(m,n) 兩個引數,m必須,起始位置 ,n選填,擷取下標的結束位置,此用法和上面slice有點類似,但是需要注意的是此方法是不支援負值的
示例如下:
只有一個引數
var arr="sdhgfhf"
var arr1=arr.substring(1)
console.log(arr1)//"dhgfhf"從下標1開始取後面所有的
兩個引數
var arr="sdhgfhf"
var arr1=arr.substring(1,3)
console.log(arr1)// "dh"從下標1開始擷取到下標3,但是不包含3
7、indexOf方法放回String物件內第一次出現子字串位置。如果沒有找到子字串,則返回-1。
strObj.indexOf(substr[,startIndex])
說明:
substr要在String物件中查詢的子字串。
startIndex該整數值指出在String物件內開始查詢的索引。如果省略,則從字串的開始處查詢。
例如:
01234567 var str = "ABCDECDF"; str.indexOf("CD",1); // 由1位置從左向右查詢 123... 結果:2
8、lastIndexOf方法返回String物件中字串最後出現的位置。如果沒有匹配到子字串,則返回-1。
strObj.lastIndexOf(substr[,startindex])
說明:
substr要在String物件內查詢的子字串。
startindex該整數值指出在String物件內進行查詢的開始索引位置。如果省略,則查詢從字串的末尾開始。
例如:
01234567 var str = "ABCDECDF"; str.lastIndexOf("CD",6); // 由6位置從右向左查詢 ...456 結果:5
9、search方法返回與正則表示式查詢內容匹配的第一個字串的位置。
strObj.search(reExp)
說明:
reExp包含正則表示式模式和可用標誌的正則表示式物件。
例如:
var str = "ABCDECDF"; str.search("CD"); // 或 str.search(/CD/i); 結果:2
10、concat方法返回字串值,該值包含了兩個或多個提供的字串的連線。
str.concat([string1[,string2...]])
說明:
string1,string2要和所有其他指定的字串進行連線的String物件或文字。
例如:
var str = "ABCDEF"; str.concat("ABCDEF","ABC"); 結果:ABCDEFABCDEFABC
11、將一個字串分割為子字串,然後將結果作為字串陣列返回。
strObj.split([separator[,limit]])
說明:
separator字串或 正則表示式 物件,它標識了分隔字串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字串的單一元素陣列。
limit該值用來限制返回陣列中的元素個數。
例如:
var str = "AA BB CC DD EE FF"; alert(str.split(" ",3)); 結果: AA,BB,CC
12、toLowerCase方法返回一個字串,該字串中的字母被轉換成小寫。
例如:
var str = "ABCabc"; str.toLowerCase(); 結果:abcabc
13、toUpperCase方法返回一個字串,該字串中的所有字母都被轉換為大寫字母。
例如:
var str = "ABCabc"; str.toUpperCase(); 結果:ABCABC