如何使用AngularJS应用过滤器以获取JSON数组中的JSON对象中具有相同值的元素

约瑟夫

我有一个带有多个(动态)JSON对象的JSON数组。我需要比较这些对象并选择在所有对象中具有相同值的键。我的JSON看起来像,

[
    {
        "CreateAccountName":"Joseph",
        "CreateDateTime":"0001-01-01T00:00:00",
        "Description":"Utilization of services",
        "Type":2,
        "Id":1000000001,
        "Count":1,
        "ModifiedAccountName":"",
        "ModifiedDateTime":"2016-10-04T10:16:40.5190025",
        "Name":"Utilization of services",
        "CardCount":0,
        "Target":95,
        "UniversalId":"SDFOPIJ-SDFGLKJ-ER234-234LF",
        "AccountId":0,
        "AccountName":"Joseph"
    },

    {
        "CreateAccountName":"Joseph",
        "CreateDateTime":"0001-01-01T00:00:00",
        "Description":"Utilization of Food",
        "Type":2,
        "Id":1000000001,
        "Count":1,
        "ModifiedAccountName":"",
        "ModifiedDateTime":"2016-10-04T10:16:40.5190025",
        "Name":"Utilization of Food",
        "CardCount":0,
        "Target":95,
        "UniversalId":"SDFOPIJ-SDFGLKJ-ER234-234LF",
        "AccountId":0,
        "AccountName":"Joseph"
    },

    {
        "CreateAccountName":"Joseph",
        "CreateDateTime":"0001-01-01T00:00:00",
        "Description":"Utilization of services",
        "Type":2,
        "Id":1000000001,
        "Count":1,
        "ModifiedAccountName":"",
        "ModifiedDateTime":"2016-10-04T10:16:40.5190025",
        "Name":"Utilization of services",
        "CardCount":0,
        "Target":95,
        "UniversalId":"SDFOPIJ-SDFGLKJ-ER234-234LF",
        "AccountId":0,
        "AccountName":"Joseph"
    }
]

我想获得具有相同价值的钥匙。例如,CreateAccountName。在所有对象中它具有相同的值。

棘手的情况是,密钥本身是动态的。我无法对密钥进行硬编码并进行比较。密钥名称可能会更改,或者可能会出现另一组密钥。我正在寻找一种通用的解决方案来比较并获取对象的“交集”。

史蒂夫·皮蒂尔

你可以做到这一点 Array.reduce()

var json = [
    {
        "CreateAccountName":"Joseph",
        "CreateDateTime":"0001-01-01T00:00:00",
        "Description":"Utilization of services",
        "Type":2,
        "Id":1000000001,
        "Count":1,
        "ModifiedAccountName":"",
        "ModifiedDateTime":"2016-10-04T10:16:40.5190025",
        "Name":"Utilization of services",
        "CardCount":0,
        "Target":95,
        "UniversalId":"SDFOPIJ-SDFGLKJ-ER234-234LF",
        "AccountId":0,
        "AccountName":"Joseph"
    },

    {
        "CreateAccountName":"Joseph",
        "CreateDateTime":"0001-01-01T00:00:00",
        "Description":"Utilization of Food",
        "Type":2,
        "Id":1000000001,
        "Count":1,
        "ModifiedAccountName":"",
        "ModifiedDateTime":"2016-10-04T10:16:40.5190025",
        "Name":"Utilization of Food",
        "CardCount":0,
        "Target":95,
        "UniversalId":"SDFOPIJ-SDFGLKJ-ER234-234LF",
        "AccountId":0,
        "AccountName":"Joseph"
    },

    {
        "CreateAccountName":"Joseph",
        "CreateDateTime":"0001-01-01T00:00:00",
        "Description":"Utilization of services",
        "Type":2,
        "Id":1000000001,
        "Count":1,
        "ModifiedAccountName":"",
        "ModifiedDateTime":"2016-10-04T10:16:40.5190025",
        "Name":"Utilization of services",
        "CardCount":0,
        "Target":95,
        "UniversalId":"SDFOPIJ-SDFGLKJ-ER234-234LF",
        "AccountId":0,
        "AccountName":"Joseph"
    }
];

var intersection = json.reduce(function(result, item) {
  Object.keys(result).forEach(function(key) {
    if(! item.hasOwnProperty(key) || item[key] !== result[key]) delete result[key];
  });
  return result;
});

console.log(intersection)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用AngularJS中的过滤器获取具有特定值的对象数组?

如何使用过滤器javascript删除数组值中的元素

在javascript中使用过滤器方法时从数组中获取所有值

在对象数组字典中应用过滤器

使用过滤器对 AngularJS 中的元素进行分组

在数组中查找值并使用过滤器功能隐藏过滤后的元素

如何使用过滤器过滤对象数组中的数组?

使用过滤器返回对象中的属性值

应用过滤器后如何获取jq以打印有效的json

在使用 for each 的嵌套对象数组中应用过滤器

如何在 C# 中使用 Mongodb.Driver 对 MongoDb 表中的数组对象应用过滤器?

如何使用JavaScript在ReThinkDB中的ReQL中对数组应用过滤器

如何使用过滤器方法将元素从数组中返回?

在 JavaScript 中为 ArcGis 使用对象时如何为多个图层应用过滤器

如何在AngularJS中使用过滤器从数组中删除项目?

如何在javascript中对对象数组使用过滤器

如何使用过滤器搜索数组中对象的多个键值?

如何使用过滤器从scala的数据框中获取包含空值的行集

在具有多个对象的数组中应用数组过滤器时出错

如何使用过滤器获取在Python中两个2D矩阵中相同位置的那些元素?

JSON数据数组中的AngularJS过滤器数组

在AngularJS控制器中应用过滤器

ElasticSearch - 如何对查询结果应用过滤器以限制具有特定值的文档

AngularJS:如何从过滤器中获取DOM元素

如何在 ElasticSearch 中应用过滤掉某些值的后过滤器?

JSON数组angularjs中的自定义过滤器

如何在字典数组中的内部数组上应用过滤器?

在JavaScript的过滤器中应用过滤器

使用过滤器在 pandoc 中添加图形元素