Моя функция должна удалить рецепт.
Таким образом, я фильтрую все рецепты, только если идентификатор не равен идентификатору, переданному в качестве аргумента
(Мы должны удалить рецепт, только если идентификатор найден в массиве)
Идентификаторы были созданы с использованием пакета 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" верно и не должен быть частью фильтруемого массива, но он оценивается как ложный