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

如何判断JSON中cm:taggable数组的ID是否存在于指定数组?

检查cm:taggable数组中的ID是否存在于自定义数组中

情况1:cm:taggable是纯ID数组

如果JSON数据里cm:taggable直接存储的是ID值数组,可直接用数组includes方法检查:

// 解析后的JSON对象
const jsonData = {
  "entry": {
    "properties": {
      "cm:taggable": [101, 102, 103, 104]
    }
  }
};

// 自定义对比数组
const secondArray = [102, 104, 105];

// 提取目标数组
const taggableIds = jsonData.entry.properties['cm:taggable'];

// 遍历检查每个ID
taggableIds.forEach(id => {
  const isExists = secondArray.includes(id);
  console.log(`ID ${id} 在secondArray中: ${isExists}`);
});

情况2:cm:taggable是包含ID的对象数组

如果cm:taggable是对象数组(每个对象含id字段),建议先把自定义数组转成Set提升查找效率(数据量大时效果显著):

const jsonData = {
  "entry": {
    "properties": {
      "cm:taggable": [
        {"id": 101, "name": "标签1"},
        {"id": 102, "name": "标签2"},
        {"id": 103, "name": "标签3"}
      ]
    }
  }
};

const secondArray = [102, 104];

// 转成Set优化查找
const targetIdSet = new Set(secondArray);

const taggableItems = jsonData.entry.properties['cm:taggable'];

// 遍历检查每个对象的ID
taggableItems.forEach(item => {
  const isExists = targetIdSet.has(item.id);
  console.log(`ID ${item.id} 在secondArray中: ${isExists}`);
});

补充说明

  • 若需收集所有存在/不存在的ID,可使用filter方法:
    // 收集存在的ID
    const existingIds = taggableIds.filter(id => secondArray.includes(id));
    // 收集不存在的ID
    const nonExistingIds = taggableIds.filter(id => !secondArray.includes(id));
    
  • 数据量较大时,Set的has方法比数组includes性能更高,前者为O(1)时间复杂度,后者为O(n)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:01:02