Есть ли порт JavaScript для функций в стандартной библиотеке C?

#javascript #c

Вопрос:

Я переношу некоторый код C на JavaScript. Я бы хотел, чтобы мне не приходилось реализовывать базовые функции, как strcspn я сам

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

Есть ли проект, из которого я могу их скопировать или который я мог бы импортировать?

Комментарии:

1. Функция, которую вы показываете, не совсем похожа на strcspn функцию. Если символ не найден, вы возвращаете a.length , который будет недопустимым индексом в строке Javascript.

Ответ №1:

В Javascript нет библиотеки, которая обеспечивала бы те же функции, что и стандартная библиотека C (по крайней мере, мне это известно).

Поэтому вам придется переписать функции самостоятельно (не особенно сложно, так как в Javascript есть много встроенных функций, которые могут вам помочь).

Еще лучше: не используйте стандартные функции C в Javascript: измените код 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;
}