如果是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不会搜索内部数组。因此,您需要先对数组进行展平,然后再进行搜索。在这种情况下,如果数组的维数不止2,我将Infinity用作参数:

var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];
var c = familyArray.flat(Infinity).includes("Bart");

console.log(c); // true;


请参阅浏览器对.flat() here的支持。如果您需要更好的浏览器支持,则可以使用找到的另一种方法here

09-25 19:50