我在检查项目是否存在于arrayOfArrays中的所有数组时遇到问题。
我正在尝试使用includes方法来解决这个问题,如下所示:
function isItemHere(arrayOfArrays, item) {
return arrayOfArrays.includes(item);
}然而,这是行不通的。
发布于 2019-05-15 22:31:35
对于单个一维数组,您编写的代码将会起作用。但是对于2D数组,您可以使用every()
arrayOfArrays.every(x => x.includes(item));发布于 2019-05-15 22:34:49
仅使用includes是行不通的,因为myArray.includes(item)会检查item在myArray中是否至少存在一次(而不是在myArray的每个子级中)。如果您有一个数组数组,则需要对数组中的每一项运行includes。
这可以使用与includes函数结合使用的every函数来完成,如下所示:
function isItemOmnipresent(arrayOfArrays, item) {
// return true if the passed item is present in all the arrays inside arrayOfArrays
return arrayOfArrays.every(childArray => childArray.includes(item));
}https://stackoverflow.com/questions/56151788
复制相似问题