首页 > 解决方案 > 使用 .find 或内部 .find 的 .index

问题描述

我在函数中使用 a.includes作为条件时遇到问题。find

var a = ["a.example", "b.example1", "c.example2"];
var b = "example1";
a[1].includes(b)
>> true
a[1].indexOf(b)>-1
>>true
a.find( c => { c.includes(b) });
>>undefined
a.find( c => { c.indexOf(b) > -1 });
>>undefined 

我的理解是,如果没有数组元素与条件匹配,则 find 返回 undefined,或者返回第一个匹配的元素。但我无法让这个条件发挥作用。难道我做错了什么?我希望 find 能返回一个真实的"b.example1"

标签: javascriptarrays

解决方案


由于.find()回调中填充了使用大括号的箭头函数,因此将return语句放入回调中。

a.find(c => { return c.includes(b) });
a.find(c => { return c.indexOf(b) > -1 });

或者完全删除它。

a.find(c => c.includes(b));
a.find(c => c.indexOf(b) > -1);

如需进一步解释,请查看 MDN 上的箭头函数参考:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions


推荐阅读