首页 > 解决方案 > 简单的 JavaScript 回调混淆

问题描述

我刚刚进入 javascript 回调,试图实现一个简单的元音计数功能。这就是我所拥有的,但我无法弄清楚这个回调的语法错误是什么。我确信这是一个非常明显的错误,但如果有人能启发我,那就太好了。

function isitVowel(letter){
   return letter in ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
}

function countVowels(line){
   return line.split(",").filter(isitVowel).length;
}

countVowels("a,b,c,d,e");

标签: javascript

解决方案


我认为您没有正确使用运算in。它看起来更像是您想要检查该值是否在数组中,您可以使用includes函数

function isitVowel(letter){
    return ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'].includes(letter);
}

注意:检查浏览器兼容性。您可能需要包含 IE 的 polyfill。

另请注意:这实际上并不是您正在使用的“回调”。您只是将函数引用作为参数传递给另一个函数。“回调”是在完成异步操作后传递使用的函数。


推荐阅读