如何通过键获取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
相关产品推荐
相关产品推荐

