傲娇的包子 2016-04-07 12:59 采纳率: 50%
浏览 1610

请教一个 大牛们js遍历的问题. 怎么样可以提高下面的效率

问题.
有2个json数据. 要比对2个数据.删除比对后不同的.
jsonA =
{ "MAIN": { "NAV": [
{ "FA": "1", "VALUE": [
{ "FB": "1", "VALUE": [
{ "FC": "1","VALUE": [
{ "FD": "1","VALUE": [] },
{"FD": "2","VALUE": [] }
] }
]}
]}
] }}
jsonA 一个数组内可能会有多个. 这里只写了一个.

jsonB =
[{"FA":1,"FB":"1","FC":"1","FD":"1"},
{"FA":2,"FB":"4","FC":"6","FD":"8"},
{"FA":3,"FB":"5","FC":"7","FD":"9"}]

要求
jsonA 与 jsonB 进行对比.
只有当FD FC FB FA 的数据在jsonB中都不存在的时候才可以删除jsonA 对应的FA.
同理 当FD FC FB 的数据在jsonB中都不存在 才能删除FB对应.

假如 FA FB 在jsonB中不存在 但FD 存在 .那么就不能删除.

我能想到的思路是 多重嵌套循环对比..但是数据很多的话会有问题的...
请问大牛们有什么好思路.

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-04-07 21:08
    关注

    构造hashmap
    http://blog.csdn.net/guirudaoge/article/details/8433559

    左边是key,右边是数据项
    然后遍历两个集合,放入对应的key,然后循环匹配。

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊