javascript - 比较 Vanilla JS 中包含对象的两个数组

标签 javascript

我有两个对象数组,我需要根据我拥有的属性进行过滤。

   var port = [
      {
         name: 'Cali',
         type:'Mine',
         location = {
            lat: '89.9939',
            lon: '-79.9999'
         }
      },
      {
         name: 'Denver',
         type:'Port',
         location = {
            lat: '67.9939',
            lon: '-85.9999'
         }
      },
      {
         name: 'Seattle',
         type:'Port',
         location = {
            lat: '167.9939',
            lon: '-85.9999'
         }
      },
      ...........
   ]

并有另一个对象作为

   var child = [
    {
      lat: '89.9939',
      lon: '-79.9999'
    },

    {
      lat: '67.9939',
      lon: '-85.9999'
     }
     ]

我正在使用过滤器

   var result = port.filter( function(el){
                    return    el.location.lat === child.lat
                });

我如何循环我的第二个数组。在这种情况下,我的数据相当大。

最佳答案

您可以使用Array#some确定 child 中是否有任何对象数组具有相同的 lat值为 port 中的任何对象数组。

var port = [{name:'Cali',type:'Mine',location:{lat:'89.9939',lon:'-79.9999'}},{name:'Denver',type:'Port',location:{lat:'67.9939',lon:'-85.9999'}},{name:'Seattle',type:'Port',location:{lat:'167.9939',lon:'-85.9999'}}], 
    child = [{lat:'89.9939',lon:'-79.9999'},{lat:'67.9939',lon:'-85.9999'}],
    result = port.filter(el => child.some(v => v.lat == el.location.lat));

    console.log(result);

关于javascript - 比较 Vanilla JS 中包含对象的两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266065/

相关文章:

javascript - 可以在应用程序外部修改本地存储值吗?

javascript - 循环遍历对象的嵌套数组

javascript - JS : Add eventHandler to all elements except few

javascript - 如何在 javascript 文件中使用 JSTL 和其他 Spring 标签?

javascript - 为什么没有调用我的 ember.js 路由模型?

javascript - 在 mocha 测试报告器中使用 ajax-post 失败

javascript - 从一些数组构建对象数组

javascript - jQuery:在更改另一个 css 属性之前等待 css 动画完成

javascript - 如何使用 Typescript 将多个参数传递给 redux reducer ?

像谷歌分析这样的Javascript时间选择