如何用其他方法检查对象数组中是否存在多个指定值?
几种优化实现方案
方案1:直接检查两个用户是否都存在(性能最优)
不需要额外存储匹配项,用some方法分别检查两个目标用户是否存在,some会在找到匹配项后立即停止遍历,性能更高效:
const result = [{"name": "ABC"},{"name": "CDE"},{"name": "FGH"},{"name": "XYZ"}]; const hasABC = result.some(item => item.name === "ABC"); const hasFGH = result.some(item => item.name === "FGH"); if (hasABC && hasFGH) { // 执行特定逻辑 }
方案2:利用Set快速查询(适合多场景复用)
先把所有用户名存入Set,再通过Set的has方法快速判断目标用户是否存在,这种方式适合需要多次检查不同用户的场景:
const result = [{"name": "ABC"},{"name": "CDE"},{"name": "FGH"},{"name": "XYZ"}]; const nameSet = new Set(result.map(item => item.name)); if (nameSet.has("ABC") && nameSet.has("FGH")) { // 执行特定逻辑 }
方案3:灵活筛选匹配项(支持扩展多个目标用户)
如果需要保留匹配到的用户对象,同时让代码更易扩展(比如后续要检查更多用户),可以用集合存储目标名称,再筛选匹配项:
const result = [{"name": "ABC"},{"name": "CDE"},{"name": "FGH"},{"name": "XYZ"}]; const targetNames = new Set(["ABC", "FGH"]); const matchedItems = result.filter(item => targetNames.has(item.name)); // 检查是否所有目标用户都被匹配到 if (matchedItems.length === targetNames.size) { // 执行特定逻辑 }
内容的提问来源于stack exchange,提问作者its me
相关产品推荐
相关产品推荐

