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

如何通过键获取JavaScript对象中的值:根据type="EXTRA"提取对应id值的技术求助

获取JavaScript对象中type="EXTRA"对应的id值

嘿,这事儿很简单,我给你几种常用的实现方式,根据你的需求选就行:

首先先把你的目标对象明确一下(方便后续代码示例):

const data = {
  "packages": [
    {
      "id": "123",
      "type": "EXTRA",
      "name": "text",
      "extras": [ { "test": "1", "test": "2" } ]
    },
    {
      "id": "234",
      "type": "BASE",
      "name": "text2",
      "extras": []
    }
  ]
};

方法1:使用Array.find()(推荐,只取第一个匹配项)

如果你的packages数组里只有一个type为"EXTRA"的项,用find()最直接,它会返回第一个符合条件的对象,然后你直接取它的id就行:

const extraPackage = data.packages.find(pkg => pkg.type === "EXTRA");
// 注意:如果找不到匹配项,extraPackage会是undefined,所以最好加个判断
const extraId = extraPackage ? extraPackage.id : null;
console.log(extraId); // 输出:"123"

方法2:使用Array.filter()(获取所有匹配项的id)

如果你的数组里可能有多个type为"EXTRA"的项,用filter()先筛选出所有符合条件的对象,再用map()提取它们的id:

const extraPackages = data.packages.filter(pkg => pkg.type === "EXTRA");
const extraIds = extraPackages.map(pkg => pkg.id);
console.log(extraIds); // 输出:["123"](如果有多个EXTRA项,会返回对应的id数组)

额外小提示

  • 提一句:你对象里的extras数组有重复的test键,在JavaScript里后面的键会覆盖前面的,最终那个对象里只有test: "2",不过这对你获取id没影响,只是顺便提醒下~
  • 要是担心找不到匹配项导致报错,记得像方法1那样加个空值判断,避免访问undefined的id属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:04:06