代码之家  ›  专栏  ›  技术社区  ›  Boris Verkhovskiy Brian Clapper

C标准库中是否有函数的JavaScript端口?

  •  -1
  • Boris Verkhovskiy Brian Clapper  · 技术社区  · 4 年前

    我正在将一些C代码移植到JavaScript。我希望不必执行这样的基本功能 strcspn 我自己

    const strcspn = (a, b) => {
      for (let [index, c] of [...a].entries()) {
        if (b.includes(c)) {
          return index
        }
      }
      return a.length
    }
    

    有没有一个项目我可以从中复制或导入?

    0 回复  |  直到 4 年前
        1
  •  1
  •   Luca Polito    4 年前

    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;
    }