这是一个从字符串中删除指定字符的函数:
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
但是...如果入站字符串任意大并且可能连续扩展怎么办?
大概我们需要一个完全不同的策略来零星地应对它?
这样的实现方式是否看起来像构造一个缓冲区对象,该对象在入站数据时定期更新,然后具有采样逻辑来处理“增量”,对其进行处理并将其传递?
而且这将必须异步完成,以避免阻塞事件循环中的所有其他内容?
这本质上就是Node.js流吗?
最佳答案
[... str]将字符串转换为1个字符的字符串数组,这将占用额外的内存。然后,.filter()将产生另一个字符串数组,该字符串数组可能与上一个字符串数组一样大,具体取决于输入数据。然后结束,得到的字符串。
如果您担心可能的内存和/或性能,则可以使用常规循环“ for”和“ charAt”功能来实现。