У меня есть объект JSON:Проверка дубликатов в формате JSON
var object1 = [{
"value1": "1",
"value2": "2",
"value3": "3",
},
{
"value1": "1",
"value2": "5",
"value3": "7",
},
{
"value1": "6",
"value2": "9",
"value3": "5",
},
{
"value1": "6",
"value2": "9",
"value3": "5",
}]
Теперь я хочу взять каждую запись из этого объекта и проверить, сколько раз точная копия этой записи появляется в этом объекте. Если это всего лишь 1 экземпляр, сделайте что-нибудь, и если он больше 2, сделайте что-нибудь еще.
Существует несколько ответов на дубликаты JSON, но они нацелены на определенное значение не полной записи.
Так я возьму запись:
{
"value1": "1",
"value2": "2",
"value3": "3",
}
и сравнить его с объектом. Вышеприведенная запись вернет 1, поскольку внутри объекта всего 1 экземпляр
Для будущего использования. Полный ответ был бы:
var asset = [
{ value1: "1", value2: "2", value3: "3" },
{ value1: "1", value2: "5", value3: "7" },
{ value1: "6", value2: "9", value3: "5" },
{ value1: "6", value2: "9", value3: "5" }
];
function countEqual(oo, pp) {
var count = 0;
oo.forEach(function (el) {
var i, equal = true;
for (i in el) {
equal = equal && el[i] === pp[i];
}
equal && count++;
});
return count;
}
var cleaned = [];
asset.forEach(function (itm) {
var unique = true;
cleaned.forEach(function (itm2) {
if (_.isEqual(itm, itm2)) unique = false;
});
if (unique) cleaned.push(itm);
});
for (var i = 0; i < cleaned.length; i++)
{
if(countEqual(asset, cleaned[i]) === 1)
{
// DO SOMETHING
}
else
{
// DO SOMETHING ELSE
}
}
что ты жулик sider как 'duplicate'? –
1) Это не JSON. 2) у вас не может быть дубликатов ключей в объектах JavaScript. Конечным результатом вашего назначения является то, что каждый объект в 'object1' будет иметь один ключ' value2'. –
Простите, я написал плохой пример, я удалил ключи – Danielok1993