let stMap = null;
let tsMap = null;
function ensureMapped() {
if (stMap !== null && tsMap !== null) {
return;
}
stMap = {};
tsMap = {};
console.assert(scStr.length === tcStr.length);
for (let i = 0; i < sc.length; i++) {
let s = scStr[i];
let t = tcStr[i];
stMap[s] = t;
stMap[t] = s;
}
}
function cc(str, simplify) {
if (!str) {
return '';
}
ensureMapped();
let ret = '';
let map = simplify ? tsMap : stMap;
for (let i = 0; i < str.length; i++) {
let ch = str[i];
ret += map[ch] || ch;
}
return ret;
}
优化一下算法如何?
1 . 优化查询算法
举个例子:
把每个字的遍历列表转换为查表。
2 . 如果配置 auto === false,但是在站点配置上选择了转换为X体的话,依旧自动转换
3 . 尽量不用 alert(),比如可以尝试使用 GM_notification(),或者第三方库的 toast?