一、常用的字元串轉數組方法
1、使用split方法將字元串按照指定分隔符轉為數組
let str = "今天,天氣,真好";
let arr = str.split(","); // ["今天", "天氣", "真好"]
2、使用Array.from方法將字元串轉為數組
let str = "hello world";
let arr = Array.from(str); // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
3、使用ES6的擴展運算符將字元串轉為數組
let str = "hello world";
let arr = [...str]; // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
二、處理特殊字元的字元串轉數組方法
1、處理中文字元串或者含有emoji表情的字元串
let str = "今天?天氣?真好";
let arr = Array.from(str); // ["今", "天", "?", "天", "氣", "?", "真", "好"]
2、處理含有非ASCII字元的字元串
let str = "hello 你好 world";
let arr = Array.from(str); // ["h", "e", "l", "l", "o", " ", "你", "好", " ", "w", "o", "r", "l", "d"]
三、優化字元串轉數組的性能
1、使用字元串擴展運算符代替split方法
split方法在處理大量字元串時,性能會受到影響,可以使用字元串擴展運算符代替split方法,提高性能
let str = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
let arr = [...str]; // ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
2、使用for循環代替forEach方法
forEach方法會創建回調函數的執行上下文,而使用for循環則可以減少創建上下文的次數,提升性能
let str = "abcdefghijklmnopqrstuvwxyz";
let arr = [];
for(let i=0; i<str.length; i++) {
arr[i] = str.charAt(i);
} // ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
四、字元串轉數組的兼容性問題
1、IE瀏覽器不支持Array.from方法和字元串擴展運算符
可以使用ES5的split方法來兼容IE瀏覽器
var str = "hello world";
var arr = str.split(''); // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
2、處理中文字元串或含有emoji表情的字元串時,需要使用ES6的polyfill庫進行兼容
import "core-js/modules/es6.string.from-code-point";
let str = "今天?天氣?真好";
let arr = Array.from(str); // ["今", "天", "?", "天", "氣", "?", "真", "好"]
五、總結
通過本篇文章的介紹,我們可以學習到前端字元串轉數組的常用方法,如使用split方法、Array.from方法和擴展運算符等。同時,也學習到了處理字符集不同、中文字元串以及含有emoji表情的字元串的處理方法。為了提升性能,我們也介紹了使用for循環代替forEach方法,使用字元串擴展運算符代替split方法等方法。最後,我們也解決了IE瀏覽器的兼容性問題。了解這些知識點,對我們的前端開發工作都是非常有幫助的。
原創文章,作者:ZQRZY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370726.html