You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断数组links的gridId属性值是否存在于数组linksElem中?返回布尔值

检查数组属性值是否存在的实现方案

需求:判断数组links中元素的gridId属性(对应代码里的g字段)是否有任意一个存在于数组linksElem的元素gridId中,返回布尔值。

原代码的问题

原代码存在两处关键问题:

  1. 数组l(对应linksElem)的定义未闭合,存在语法错误;
  2. 判断逻辑错误:el.gr是不存在的属性名,且l.g试图直接访问数组的g属性,这是错误的写法(数组本身没有该属性)。

正确实现代码

// 修正语法后的目标数组(对应需求中的links和linksElem)
const links = [
  { g: 10, conon: {} },
  { g: 10, conon: {} },
  { g: 10, conon: {} },
  { g: 10, conon: {} },
];

const linksElem = [
   { g: 10, conon: {} }
];

// 提取linksElem中所有的g值存入Set,优化查找效率
const elemGSet = new Set(linksElem.map(item => item.g));

// 检查links中是否有元素的g值存在于elemGSet里
const res = links.some(item => elemGSet.has(item.g));
console.log(res); // 输出true

逻辑说明

  • 先用map提取linksElem里所有元素的g值,存入Set结构——Set的has方法查找效率为O(1),比反复遍历数组更高效,尤其适合大数据量场景;
  • 调用links.some()方法遍历数组,只要有一个元素的g值能在Set中找到,就立即返回true,遍历结束后没找到则返回false。

内容的提问来源于stack exchange,提问作者Marizona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:06:23