Kpo*_*wer 0 javascript arrays token tokenize
假设我有数组,['dcab', 'feac', 'gwad', 'dnae']但想要使它们每个'a'都在它自己的标记中,例如['dc', 'a', 'b', 'fe', 'a', 'c', 'gw', 'a', 'd', 'dn', 'a', 'e'];.我该怎么办?谢谢!
var x = ['dcab', 'feac', 'gwad', 'dnae'];
x = x.join('-').replace(/a/g,"-a-").split('-');
Run Code Online (Sandbox Code Playgroud)
更新:正如@Robert指出的那样,如果你有'a'开头或结尾,这将导致''最后一个数组中出现空字符串.您可以通过执行以下操作来删除空字符串来解决此问题:
x.join('-').replace(/a/g,"-a-").split('-').filter(function(x) { return x!='' });
Run Code Online (Sandbox Code Playgroud)
或者,对于性能可能成为问题的大型数组,您可以简单地使用另一个除去额外的分隔符.replace()(这可能是更好的方法,尽管它不可读):
x.join('-').replace(/a/g,"-a-").replace(/^\-|\-(?=\-)|\-$/g,'').split('-');
Run Code Online (Sandbox Code Playgroud)
当然,'-'一旦你可以保证你的分隔符不在你的任何字符串中,你的分隔符就可以是任何东西(它不一定是a ).