JavaScript:如何检测含子值的数组中是否存在指定子值
检测数组对象中子值是否存在的方法
你遇到的问题是array.includes()无法检测数组对象的子属性,原因是includes会严格对比整个元素与传入值是否相等——你传入的是字符串,而数组元素是对象,两者不可能匹配,所以方法无效。
要检测子值是否存在,推荐使用以下两种方法:
方法一:使用Array.some()
some()会遍历数组,只要有一个元素满足指定条件就返回true,适合快速判断存在性:
const targetCRN = classesArray[i]; // 检查数组中是否有对象的classCRN等于目标值 const isExists = dataArray.some(item => item.classCRN === targetCRN); if (!isExists) { // 你的后续代码逻辑 }
方法二:使用Array.find()
find()会返回第一个满足条件的元素,若不存在则返回undefined,适合需要获取匹配元素的场景:
const targetCRN = classesArray[i]; const matchedItem = dataArray.find(item => item.classCRN === targetCRN); if (!matchedItem) { // 你的后续代码逻辑 }
内容的提问来源于stack exchange,提问作者fault
相关产品推荐
相关产品推荐

