Удалить дубликаты объектов (JSON) - JavaScript - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть строка JSON:

var jsn = '{"header-v1":{"archives":{"is_author":"all"}},"header-v4":{"archives":{"is_author":"all"}}}';

Этот объект постоянно обновляется, и я хочу удалить повторяющиеся значения. Например, если это:

    var jsn = '{"header-v4":{"archives":{"is_author":"all"}}}';

И если новый набор правил, который должен быть добавлен, будет равен

"header-v1":{"archives":{"is_author":"all"}}

тогда я хочу удалить оттуда "header-v4":{"archives":{"is_author":"all"}}, потому что есть дубликат {"archives":{"is_author":"all"}}.

Возможно ли это с помощью JavaScript?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Может быть, что-то вроде этого вы можете сделать

var jsn = '{"header-v4":{"archives":{"is_author":"all"}}}';

var jsonObject = JSON.parse(jsn);

var newJsn = '{header-v1":{"archives":{"is_author":"all"}}}';

var newJsonObject = JSON.parse(newJsn);

var matchingKey = [];

Object.keys(newJsonObject).forEach(key => {
    Object.keys(jsonObject).forEach(nkey => {
        if(newJsonObject[key].toString() === jsonObject[nkey].toString()) {
          matchingKey.push(nkey);
        }
    });
});

matchingKey.forEach(mkey => {
    delete jsonObject[mkey];
});
0 голосов
/ 19 ноября 2018
var result = [];
$.each(subservices, function (i, e) {
    var matchingItems = $.grep(result, function (item) {
       return item.name === e.name && item.label === e.label;
    });
    if (matchingItems.length === 0){
        result.push(e);
    }
});

//displays result [{"name":"hello","label":"world"},{"name":"abc","label":"xyz"}]
alert(JSON.stringify(result));

JS Fiddel http://jsfiddle.net/defujjhp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...