сравнение идентификаторов, сгенерированных из пакета uuid npm - PullRequest
0 голосов
/ 25 апреля 2020

Моя функция должна удалить рецепт.

Таким образом, я фильтрую все рецепты, только если идентификатор не равен идентификатору, переданному в качестве аргумента

(Мы должны удалить рецепт, только если идентификатор найден в массиве)

Идентификаторы были созданы с использованием пакета uuid (метод v4)

const removeRecipe = (id) => {
  const recipes = loadRecipes();
  const recipesToKeep = recipes.filter((recipe) => {
    return recipe.id !== id;
  });

  if (recipes.legth > recipesToKeep.legth) {
    console.log(chalk.green.inverse('Recipe Removed'));
    saveRecipes(recipesToKeep);
  } else {
    console.log(chalk.red.inverse('Recipe not found'));
  }
};

Проблема в том, что даже когда идентификаторы равны как по значению, так и по типу (строка), а функция фильтра должна игнорируйте рецепт, который функция все еще возвращает false

, поэтому "c3a76b5b-bc36-4e87-8e2 c -229211ca265d" === "c3a76b5b-bc36-4e87-8e2 c -229211ca265d" верно и не должен быть частью фильтруемого массива, но он оценивается как ложный

1 Ответ

0 голосов
/ 25 апреля 2020

У меня была опечатка на

if (recipes.legth > recipesToKeep.legth) {

Я должен быть

if (recipes.length > recipesToKeep.length) {
...