1. 程式人生 > >陣列,字串的常見操作

陣列,字串的常見操作

陣列:

第一:讀取陣列 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]

第十:陣列擷取 陣列擷取的方法主要有slicesplice,另外說到擷取我這裡隨便也把字串擷取帶上,字串擷取的方法主要有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