如何使用JavaScript判断指定数字是否存在于二维数组中
问题原因
你用的map方法是数组映射方法,作用是遍历原数组返回一个长度和原数组完全一致的新数组,不会直接返回你需要的布尔值,因此达不到判断目标值是否存在的效果。
正确实现
判断数组中是否存在符合条件的元素,直接用数组的some方法即可,该方法只要匹配到符合条件的元素就会终止遍历返回true,全量遍历后无匹配则返回false,符合你的需求:
const slotsForDate = [ [1, "Canteen" ], [2, "Swift Room"] ] // 替换为你实际的目标值,比如你的slot.id const target = 2 const isBooked = slotsForDate.some(subArray => subArray.includes(target))
补充说明
includes内部是严格相等判断(和===规则一致),如果你需要忽略类型匹配(比如数字2和字符串"2"判定为相等),可以修改为以下写法:
const isBooked = slotsForDate.some(subArray => { return subArray.some(item => item == target) })
内容的提问来源于stack exchange,提问作者Clancinio
相关产品推荐
相关产品推荐

