这是一个从字符串中删除指定字符的函数:



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”功能来实现。

10-04 11:26
查看更多