javascript - array.includes 返回 false ,其中搜索的名称在数组中
问题描述
如果var c = familyArray.includes("Bart");
它会返回false
,但如果var c = familyArray.includes("Homer");
它会返回true
我希望它也是如此,Bart
因为它也包含在数组中。
下面是我的数组:
var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];
var a = familyArray.indexOf("Bart");
var b = familyArray[2][0];
var c = familyArray.includes("Bart");
document.getElementById("demo").innerHTML = c;
console.log(a);
console.log(b);
<p id="demo"></p>
解决方案
您的问题是您有一个多维数组,并且数组includes
不会搜索内部数组。因此,您需要在搜索之前将数组展平。Infinity
在这里,如果您的数组的维数多于 2,我将其用作参数:
var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];
var c = familyArray.flat(Infinity).includes("Bart");
console.log(c); // true;
请参阅.flat()
此处的浏览器支持。如果您需要更好的浏览器支持,您可以使用此处找到的替代方法
推荐阅读
- keycloak - 在后端 API 前使用 Keycloak Gatekeeper
- php - 此路由不支持 DELETE 方法。支持的方法:GET、HEAD、POST。在 laravel 中
- python - 将 pandas 操作应用于所有字典键
- android - 我无法根据需要调整列大小
- c++ - 如何传递函数指针(回调)并在不知道它的类型的情况下调用它?
- sql - MSSQL 错误:多部分标识符无法绑定
- maps - 在 Power BI Maps 上绘制状态字符串
- java - Micronaut AWS Lambda 日志未显示在云端
- javascript - 我可以更改扩展类中方法的返回类型吗?
- cmake - 如何解决才能正确编译?