Javascript 从其他json中搜索json中的值

Javascript 从其他json中搜索json中的值,javascript,arrays,json,Javascript,Arrays,Json,我试图从其他json中的json中搜索一个值,然后从不匹配的值创建一个新对象 这是我的代码: var anis_report = [ { ani: '525510107835', Times_repeated: 11, Minutes: '33.97' },{ ani: '526642111071', Times_repeated: 9, Minutes: '6.00' },{ani: '524499765316', Times_repeated: 8, Minutes: '31.20' },{

我试图从其他json中的json中搜索一个值,然后从不匹配的值创建一个新对象

这是我的代码:

var anis_report = [ { ani: '525510107835', Times_repeated: 11, Minutes: '33.97' },{ ani: '526642111071', Times_repeated: 9, Minutes: '6.00' },{ani: '524499765316', Times_repeated: 8, Minutes: '31.20' },{ ani: '525517421550', Times_repeated: 7, Minutes: '167.10' }]

var anis_whitelisted_db = [{ ani: '525510107835' },{ ani: '525555742933' },{ ani: '525511049249' },{ ani: '524422242668' }]
这里我从anis_报告中获取ani值,以在anis_白名单_db中搜索该值,但没有按照我的要求工作

  for (ani in anis_whitelisted_db) {
    for (ani_2 in anis_report) {      
      if (anis_report[ani_2]['ani'] !== anis_whitelisted_db[ani]['ani']) {
        // Push unmatch object
        anis_not_whitelisted.push(anis_report[ani_2])     
      }
    }
  }

提前感谢

您可以使用for..of

我认为在检查anis_白名单_db中的每一项时,也存在一个逻辑问题,并且,一旦找到与给定ani匹配的项,就必须停止迭代

没有任何性能优化(使用Set:)

const whitelistedAnis=新集合(['ani1','ani2','ani3']);
对于(anis_报告的常数ani){//这里ani是{ani:xxx,Times_repeated,…}对象
如果(!whitelistedAnis.has(ani.ani))anis\u未被列入白名单,则推送(ani.ani);
}

这样,您可以只管理一个ani列表,并检查报告的ani是否在此列表中。

您可以使用
for..of

我认为在检查anis_白名单_db中的每一项时,也存在一个逻辑问题,并且,一旦找到与给定ani匹配的项,就必须停止迭代

没有任何性能优化(使用Set:)

const whitelistedAnis=新集合(['ani1','ani2','ani3']);
对于(anis_报告的常数ani){//这里ani是{ani:xxx,Times_repeated,…}对象
如果(!whitelistedAnis.has(ani.ani))anis\u未被列入白名单,则推送(ani.ani);
}
通过这种方式,您只管理ani列表,并检查报告的ani是否在此列表中。

您可以使用循环遍历元素,然后使用方法检查匹配值,最后使用方法删除匹配元素:

可以使用循环遍历元素,然后使用方法检查匹配值,最后使用方法删除匹配元素:


您是否错误地标记了“java”?这看起来像是一个Python构造。糟糕,是JavaScription。你错标记了“java”吗?这看起来像一个Python构造。糟糕,它是javascript
var anis_report = [ { ani: '525510107835', Times_repeated: 11, Minutes: '33.97' },{ ani: '526642111071', Times_repeated: 9, Minutes: '6.00' },{ani: '524499765316', Times_repeated: 8, Minutes: '31.20' },{ ani: '525517421550', Times_repeated: 7, Minutes: '167.10' }]

var anis_whitelisted_db = [{ ani: '525510107835' },{ ani: '525555742933' },{ ani: '525511049249' },{ ani: '524422242668' }]

var anis_not_whitelisted=anis_report
for (const[i,ani] of anis_report.entries()) {
  if(anis_whitelisted_db.some( element => element['ani'] === ani['ani'] )){
    anis_not_whitelisted.splice(i,1)
  }
}

console.log(anis_not_whitelisted)