如何快速找到JSON嵌套数组中某一个对象

[
{"id":1,"name":"第一层","child":[{"id":11,"name":"第一层下"}]}
,{"id":2,"name":"第二层","child":[{"id":21,"name":"第二层下"}]}
]

这样的JSON,包含child的无限嵌套结构。
如何根据拿到的id,快速找到相应的对象
假如拿到 id 21 如何拿到 对应name

只能用递归吗?还有其他方式没 尽量快点

阅读 1.8k
2 个回答

转json字符串,然后正则找

如果格式固定你可以JSON.stringify之后用正则去匹配。

const yourString = JSON.stringify([{id: 5, name: 'test'},{id:21,name:'hi'},{id:6,name:'w'}]);
const id=21; const reg = new RegExp(`"id":${id},"name":"([^"]*)"`);
console.log(yourString.match(reg));

hi就是你要的。

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题