js 常用的操作字符串和數(shù)組的幾種方法

目錄

  • 字符串:
    1、split:把字符串分割為字符串數(shù)組;
    2、indexOf(lastIndexOf):從前往后檢索字符串(從后往前檢索字符串);
    3、charAt:返回在指定位置的字符;
    4、substring:提取字符串中兩個指定的索引號之間的字符;

  • 數(shù)組和字符串都有的方法:
    5、slice:提取字符串的片斷,并在新的字符串中返回被提取的部分;從某個已有的數(shù)組返回選定的元素。

  • 數(shù)組:
    6、concat:連接兩個或更多的數(shù)組,并返回結(jié)果。
    7、join:把數(shù)組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔;
    8、reverse:顛倒數(shù)組中元素的順序
    9、splice:向/從數(shù)組中添加/刪除項目,然后返回被刪除的項目。該方法會改變原始數(shù)組。

示例

1、split:stringObject.split(separator,howmany)
參數(shù) 描述
separator 字符串或正則表達式,從該參數(shù)指定的地方分割stringObject
howmany 可選,該參數(shù)可指定返回的數(shù)組的最大長度。如果設置了該參數(shù),返回的子串不會多于這個參數(shù)指定的數(shù)組。如果沒有設置該參數(shù),整個字符串都會被分割,不考慮它的長度。

返回:一個字符串數(shù)組。該數(shù)組是通過在 separator 指定的邊界處將字符串 stringObject 分割成子串創(chuàng)建的。返回的數(shù)組中的字串不包括 separator 自身。

let str="How are you doing today?"
let str1 = str.split(" ");
let str2 = str.split(" ",3);
console.log(str1); // ["How", "are", "you", "doing", "today", "?"]
console.log(str2); // ["How", "are", "you"]
2、indexOf、lastIndexOf:stringObject.indexOf(searchvalue,fromindex)、stringObject.lastIndexOf(searchvalue,fromindex)
參數(shù) 描述
searchvalue 必需。規(guī)定需檢索的字符串值。
fromindex 可選的整數(shù)參數(shù)。規(guī)定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數(shù),則將從字符串的首字符開始檢索。
  • indexOf:從前往后檢索;
  • lastIndexOf:從后往前檢索。如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,則返回的是出現(xiàn)的最后一個 searchvalue 的位置

返回searchvalue在stringObject中的位置,若沒有,則返回-1;若有多個,如果不是用正則表達式全局匹配,則返回匹配到的第一個。
注:對大小寫敏感。

let str="How are you doing today ?"
let index1 = str.indexOf("o");
let index2 = str.indexOf("w",7);
let index3 = str.lastIndexOf("o");
let index4 = str.lastIndexOf("w",7);
console.log(index1); //  1 :返回匹配到的第一個o的位置
console.log(index2); // -1 :從7開始檢索,檢索不到返回-1
console.log(index3); //  19
console.log(index4); // 2:在位置7之前就存在w,所以返回的是最后一個w的位置
3、charAt:stringObject.charAt(index)
參數(shù) 描述
index 必需。表示字符串中某個位置的數(shù)字,即字符在字符串中的下標。

注:字符串中第一個字符的下標是 0。如果參數(shù) index 不在 0 與 string.length 之間,該方法將返回一個空字符串。

let str="How are you doing today ?"
let str1 = str.charAt(6);
console.log(str1); //  e
4、substring:stringObject.substring(start,stop)
參數(shù) 描述
start 必需。一個非負的整數(shù),規(guī)定要提取的子串的第一個字符在 stringObject 中的位置。
stop 可選。一個非負的整數(shù),比要提取的子串的最后一個字符在 stringObject 中的位置多 1。如果省略該參數(shù),那么返回的子串會一直到字符串的結(jié)尾。(結(jié)束的位置不包含stop)
  • 返回一個新的字符串,包括 start 處的字符,但不包括 stop 處的字符。
    如果參數(shù) start 與 stop 相等,那么該方法返回的就是一個空串(即長度為 0 的字符串)。如果 start 比 stop 大,那么該方法在提取子串之前會先交換這兩個參數(shù)。
let str="How are you doing today ?"
let str1 = str.substring(6);
let str2 = str.substring(2,7);
console.log(str); // How are you doing today ?
console.log(str1); // e you doing today ?
console.log(str2); // w are
5、slice:stringObject.slice(start,end)arrayObject.slice(start,end)

String.slice() 與 Array.slice() 相似。

參數(shù) 描述
start 要抽取的片斷的起始下標。如果是負數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個字符,-2 指倒數(shù)第二個字符,以此類推。
end 緊接著要抽取的片段的結(jié)尾的下標。若未指定此參數(shù),則要提取的子串包括 start 到原字符串結(jié)尾的字符串。如果該參數(shù)是負數(shù),那么它規(guī)定的是從字符串的尾部開始算起的位置。
  • 返回一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結(jié)束(不包括 end)為止的所有字符。
let str="How are you doing today ?"
let str1 = str.slice(6);
let str2 = str.slice(2,7);
let str3 = str.slice(-4);
console.log(str); // How are you doing today ?
console.log(str1); // e you doing today ?
console.log(str2); // w are
console.log(str3); // ay ?
let arr = ["how","are","you","today"];
let arr1 = arr.slice(1);
let arr2 = arr.slice(1,2);
let arr3 = arr.slice(-3,-1);
console.log(arr); // ["how", "are", "you", "today"]
console.log(arr1); // ["are", "you", "today"]
console.log(arr2); // ["are"]
console.log(arr3); // ["are", "you"]
  • 注:
    1.slice() 比較靈活些,參數(shù)可以為負數(shù),如果起始位置為負數(shù),則從字符串最后一位向前找對應位數(shù)并且向后取結(jié)束位置,如果為正整數(shù)則從前往后取起始位置到結(jié)束位置。
    2.substring()只能非負整數(shù),截取起始結(jié)束位置同slice()函數(shù)一致。
    以上三種函數(shù)未填第二參數(shù)時,自動截取起始位置到字符串末尾。
6、concat:arrayObject.concat(arrayX,arrayX,......,arrayX)

stringObject.concat() 與 Array.concat() 相似,但是對于字符串來說,使用+運算符來連接會比stringObject.concat()簡單快速得多

參數(shù) 描述
arrayX 必需。該參數(shù)可以是具體的值,也可以是數(shù)組對象??梢允侨我舛鄠€。
  • 返回一個新的數(shù)組。該數(shù)組是通過把所有 arrayX 參數(shù)添加到 arrayObject 中生成的。如果要進行 concat() 操作的參數(shù)是數(shù)組,那么添加的是數(shù)組中的元素,而不是數(shù)組。
let arr = ["how","are","you","today"];
let arr1 = arr.concat(1,2);
let arr2 = [4,5,6];
let arr3 = arr1.concat(arr2)
console.log(arr); // ["how", "are", "you", "today"]
console.log(arr1); // ["how", "are", "you", "today", 1, 2]
console.log(arr3); // ["how", "are", "you", "today", 1, 2, 4, 5, 6]
7、join:arrayObject.join(separator)
參數(shù) 描述
separator 可選。指定要使用的分隔符。如果省略該參數(shù),則使用逗號作為分隔符。
  • 返回一個字符串。該字符串是通過把 arrayObject 的每個元素轉(zhuǎn)換為字符串,然后把這些字符串連接起來,在兩個元素之間插入 separator 字符串而生成的。
let arr = ["how","are","you","today"];
let str1 = arr.join();
let str2 = arr.join('');
let str3 = arr.join('-');
console.log(str1); // how,are,you,today
console.log(str2); // howareyoutoday
console.log(str3); // how-are-you-today  
8、join:arrayObject.reverse()

注:該方法會改變原來的數(shù)組,而不會創(chuàng)建新的數(shù)組。

let arr = ["how","are","you","today"];
arr.reverse();
console.log(arr); // ["today", "you", "are", "how"]
9、join:arrayObject.splice(index,howmany,item1,.....,itemX)

splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數(shù)組進行修改。

參數(shù) 描述
index 必需。整數(shù),規(guī)定添加/刪除項目的位置,使用負數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。
howmany 必需。要刪除的項目數(shù)量。如果設置為 0,則不會刪除項目。
item1,.....,itemX 可選。向數(shù)組添加的新項目。
9.1、向數(shù)組中添加元素
let arr = ["how","are","you","today"];
let arr1 = arr.splice(2,0,'a');
console.log(arr); // ["how", "are", "a", "you", "today"]
console.log(arr1) // []
9.2、替換數(shù)組中某個位置的元素
let arr = ["how","are","you","today"];
let arr1 = arr.splice(2,1,'a');
console.log(arr); // ["how", "are", "a", "today"]
console.log(arr1) // ["you"]
9.3、刪除數(shù)組中的元素
// 指定刪除個數(shù)
let arr = ["how","are","you","today"];
let arr1 = arr.splice(2,1);
console.log(arr); // ["how", "are", "today"]
console.log(arr1) // ["you"]

// 不指定刪除個數(shù),則從index開始刪到結(jié)尾
let arr = ["how","are","you","today"];
let arr1 = arr.splice(2);
console.log(arr); // ["how", "are"]
console.log(arr1) // ["you", "today"]

// 刪除指定個數(shù),并且添加元素(等同于:用添加的元素來代替所需要刪除的元素)
let arr = ["how","are","you","today"];
let arr1 = arr.splice(1,3,'a','b');
console.log(arr); // ["how", "a", "b"]
console.log(arr1) // ["are","you", "today"]

參考文章:
1、JavaScript String 對象
2、JavaScript Array 對象

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容