JS调用数组findIndex方法报错Uncaught TypeError: Lemon is not a function如何解决
报错原因
Array.prototype.findIndex() 方法的入参要求为回调函数,你直接传入字符串"Lemon"作为参数,JS运行时会尝试将传入的字符串作为函数执行,等价于调用"Lemon"(),因此触发Lemon is not a function类型错误。该报错和数组中是否存在Lemon值无关,属于方法入参类型不符合要求导致的前置错误。
解决方案
根据你的使用场景,可以选择以下两种修正方式:
- 方式1:给
findIndex传入符合要求的回调函数,适用于需要自定义匹配规则的场景
var guildList = []; guildList.push("Lemon"); console.log(guildList.findIndex(item => item === "Lemon")); // 输出0,匹配到返回对应下标,未匹配到返回-1
- 方式2:直接使用
Array.prototype.indexOf()方法,该方法支持直接传入要匹配的目标值,更适合简单全等匹配的场景
var guildList = []; guildList.push("Lemon"); console.log(guildList.indexOf("Lemon")); // 输出0,匹配到返回对应下标,未匹配到返回-1
内容的提问来源于stack exchange,提问作者Osian
相关产品推荐
相关产品推荐

