教你如何解決JS/TS里特定String進行拆分然後遍歷各個元素
摘要:我們需要先判斷特定String里是否包含我們需要的元素,針對這個元素對這個字元串進行拆分,遍歷各個元素。
本文分享自華為雲社區《JavaScript/TypeScript項目里如何對特定String進行拆分然後遍歷各個元素》,作者:gentle_zhou。
我們可以把題目的這個需求拆分一下,變為如下幾步:判斷特定String里是否包含我們需要的元素,針對這個元素對這個字元串進行拆分,遍歷各個元素。
判斷特定String里是否包含我們需要的元素
我們可以用includes()方法來判斷我們要找的一個字元串是否包含在我們特定的字元串中,根據情況返回 true 或 false。
註:include()方法是區分大小寫的。
該方法的默認語法是:str.includes(searchString[, position])。
searchString是我們要在特定字元串中去搜索的字元串;position則是可選的參數,從當前字元串的哪個索引位置開始搜尋子字元串,默認值為 0。
程式碼示例:
let question = 'To be, or not to be, it is a question.'; // 判斷question字元串里是否包含我們需要的元素, console.log(question.includes(',')); // 會列印出true
針對這個元素對這個字元串進行拆分
JavaScript里,split()方法根據 splitter(分隔符)將字元串拆分為兩個或多個子字元串。分隔符可以是單個字元、另一個字元串甚至是一個正則表達式。
將字元串拆分為多個子字元串後,split()方法會將所有子字元串放入一個數組中並返回;它不會對原始字元串進行任何修改。
程式碼示例:
let question = 'To be, or not to be, it is a question.'; let quesArr = question.split(','); console.log(quesArr); // 會列印出["To be", "or not to be", "it is a question."] console.log(arr[0]); // 列印出"To be" console.log(arr[2]); // 列印出"it is a question."
遍歷各個元素
我們有4種方法去遍歷我們剛得到的數組quesArr。
// 方法1 for (let i = 0; i < quesArr.length; ++i) { console.log(quesArr[i]); } // 方法2 for (let i in quesArr) { console.log(quesArr[i]); } // 方法3 for (const v of quesArr) { console.log(v); } // 方法4 quesArr.forEach((v, i) => console.log(v));
這裡面,我最喜歡用第一種方法,因為我可以在滿足獲取到所有元素要求的同時,還可以獲取到特定的某個元素。
參考資料
- //www.runoob.com/jsref/jsref-includes.html
- //flexiple.com/javascript-split-string/
- //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for…in
- //stackoverflow.com/questions/8312459/iterate-through-object-properties