javascript - C 标准库中的函数是否有 JavaScript 端口?
问题描述
我正在将一些 C 代码移植到 JavaScript。strcspn
我不想像我自己那样实现基本功能
const strcspn = (a, b) => {
for (let [index, c] of [...a].entries()) {
if (b.includes(c)) {
return index
}
}
return a.length
}
是否有可以从中复制或导入的项目?
解决方案
Javascript 中没有库可以提供与 C 标准库相同的功能(至少我知道)。
所以你必须自己重写函数(不是特别困难,因为 Javascript 有很多内置函数可以帮助你)。
更好的是:不要在 Javascript 中使用 C 标准函数:直接修改 C 代码以编写更惯用的 Javascript 代码。我的意思是说:
// a C code that uses `strtok()` to split a string may be rewritten in JS as:
const splitted = str.split(" ");
// it's cleaner and you don't need to rewrite `strtok()` in JS
注意:您的实现strcspn()
是错误的。Javascript 中的正确实现是:
function strcspn(dest, src) {
let res = 0;
for (let i = 0; i < dest.length; i += 1) {
if (src.includes(dest.charAt(i))) {
break;
}
res += 1;
}
return res;
}
推荐阅读
- python - 无法获得执行结果(SQL 工具)
- php - 在登录 PHP 之后和之前显示不同的标题
- angular - 减速器在ngrx中抛出“错误对象null不可迭代”
- php - UTF-8 笑脸破坏 MySQL 查询导致部分插入数据
- html - 下拉菜单隐藏在工具栏后面
- docker - Docker 使用的内存少于 GUI 中指定的允许数量
- node.js - 为什么猫鼬虚拟填充没有出现在数据库中?
- javascript - 如何以随机顺序比较两个匹配的数组
- dialogflow-es - 如何将用户自然查询转换为 SQL 查询?
- jmeter - 使用线程组名称创建 Jmeter Aggregate 报告