这是一个从字符串中删除指定字符的函数:
function remove(str, chars) {
var set = new Set(chars);
return [...str].filter(i => !set.has(i)).join('');
}
console.log(remove('hello world', 'el') === 'ho word'); // true
但是......如果入站字符串是任意大的并且可能会不断扩展呢?
据推测,我们需要一种完全不同的策略来逐步处理它?</ p>
这样的实现看起来像构建一个缓冲对象,它会在数据入站时定期更新,然后使用采样逻辑来处理“delta”,处理它并传递它吗?
并且这必须异步完成以避免阻塞事件循环中的其他所有内容吗?
这基本上是Node.js流的内容吗?
答案 0 :(得分:1)
[... str]会将字符串转换为1个字符的字符串数组,这会占用额外的内存。然后.filter()将生成另一个字符串数组,这些数组可能与前一个字符串一样大,具体取决于输入数据。结束,结果字符串。
如果您担心可能的内存和/或性能,可以使用常规循环“for”和“charAt”函数来实现。