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

JavaScript对象数组交集匹配:为元素添加check字段

解决layers与perms数组匹配并添加check字段的问题

需求概述

给定包含layers和perms两个对象数组的response对象,需为layers中每个元素添加check字段:

  • 若layers元素的layer键值与perms中任意元素的layer键值相同,check: true
  • 否则check: false

高效实现方案

利用Set存储perms中的layer值(查找复杂度O(1)),结合map遍历layers完成字段添加,比多次遍历数组的方式更高效。

代码示例

// 模拟原始response数据
const response = {
  layers: [
    { layer: 'layer1', name: '图层1' },
    { layer: 'layer2', name: '图层2' },
    { layer: 'layer3', name: '图层3' }
  ],
  perms: [
    { layer: 'layer1', permission: 'edit' },
    { layer: 'layer3', permission: 'view' }
  ]
};

// 提取perms中的layer值存入Set
const permLayerSet = new Set(response.perms.map(item => item.layer));

// 为layers数组元素添加check字段
response.layers = response.layers.map(layer => ({
  ...layer,
  check: permLayerSet.has(layer.layer)
}));

输出结果

处理后的response.layers如下:

[
  { layer: 'layer1', name: '图层1', check: true },
  { layer: 'layer2', name: '图层2', check: false },
  { layer: 'layer3', name: '图层3', check: true }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:43:12