如果我有一个给定的字符串,使用 JavaScript,是否可以根据 ASCII 代码从它们中删除某些字符并返回剩余的字符串,例如从字符串中删除所有 ASCII 代码 < 22 的字符?
事实证明有很多不同的解决方案,这里是一个简短的概述(从最快到最慢排序)
let finalString = "";
for(let i = 0; i < myString.length; i++ ) {
if(myString.charCodeAt(i) < 22) continue;
finalString += myString.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)
速度(针对以下基准):82,600 ops/s ±1.81%
const newStringArray = myString.split("").filter(e => e.charCodeAt(0) > 22)
let finalString = ""
for(let i = 0; i < newStringArray.length; i++ ) {
finalString += newStringArray[i]
}
Run Code Online (Sandbox Code Playgroud)
速度(对于下面的基准测试):55,199 ops/s ±0.53
% 慢 33.17%
.joinconst newString = myString.split("").filter(e => e.charCodeAt(0) >= 22).join("");
Run Code Online (Sandbox Code Playgroud)
速度(对于下面的基准测试):18,745 ops/s ±0.28
% 慢 77.31%
.reduceconst newString = myString.split("")
.filter(e => e.charCodeAt(0) > 22)
.reduce( (acc, current) => acc += current, "");
Run Code Online (Sandbox Code Playgroud)
速度(对于下面的基准测试):17,781 ops/s ±0.23
% 慢 78.47%
基准可以在这里找到:https : //jsbench.me/50k8zwue1p

| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |