是否存在C标准库函数的JavaScript移植版本可供使用?
你当前编写的strcspn实现已经完全匹配C语言标准中strcspn的定义,逻辑没有问题,可以直接拷贝使用。
如果不想自己维护这类C标准库字符串函数的JS实现,现有公开的JS端C标准库移植项目大多已经内置了完整的strcspn、strspn、strtok等系列函数实现,导入即可直接调用,不需要自己手动实现。
如果需要处理超长字符串场景,你现有的实现可以做一点性能优化:把第二个参数先转成Set再做存在性判断,减少includes方法的线性遍历开销,优化后的实现如下:
const strcspn = (str, reject) => { const rejectSet = new Set(reject); for (let i = 0; i < str.length; i++) { if (rejectSet.has(str[i])) return i; } return str.length; }
这个版本在待排除的字符集合较长的场景下性能提升会非常明显。
内容的提问来源于stack exchange,提问作者user3064538
相关产品推荐
相关产品推荐

