Удаление дубликатов данных из массива с помощью angular 9 - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть массив с приведенным ниже списком массивов, как показано на рисунке, я хотел бы удалить дубликаты массивов "Qualif" и "Prod"

что у меня есть

Я хочу быть таким

что я хочу

Я пробовал при следующих условиях

Сценарий1 :

   this.Default_data_historique=Object.values(this.nouveau_data_historique.reduce((c,e)=>{
            if (!c[e.PTF_NAME]) c[e.PTF_NAME] =e; return c; },{}));

Сценарий2 :

this.Default_data_historique= Array.from(new Set(this.nouveau_data_historique))

Сценарий3 :

this.Default_data_historique=this.nouveau_data_historique.filter(function(elem,index,self){
          return index === self.indexOf(elem)
        });

Ни один из трех сценариев ios выше смогли удалить дубликаты из этого массива. Может ли кто-нибудь помочь с этим?

Редактировать: Пример данных у меня

[
    [{
            "PTF_NAME": "integration",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "integration",
            "Salle": "salle1"
        }
    ],
    [{
            "PTF_NAME": "Qualif",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "Qualif",
            "Salle": "salle1"
        }
    ],
    [{
            "PTF_NAME": "Qualif",
            "Salle": "salle2"
        },
        {
            "PTF_NAME": "Qualif",
            "Salle": "salle2"
        }
    ],
    [{
            "PTF_NAME": "Prod",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "Prod",
            "Salle": "salle1"
        }
    ],
    [{
            "PTF_NAME": "Prod",
            "Salle": "salle2"
        },
        {
            "PTF_NAME": "Prod",
            "Salle": "salle2"
        }
    ]
]

что я хочу

[
    [{
            "PTF_NAME": "integration",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "integration",
            "Salle": "salle1"
        }
    ],
    [{
            "PTF_NAME": "Qualif",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "Qualif",
            "Salle": "salle1"
        }
    ],

    [{
            "PTF_NAME": "Prod",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "Prod",
            "Salle": "salle1"
        }
    ]

]

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Попробуйте,

data = [
    [
        {
            "PTF_NAME": "integration",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "integration",
            "Salle": "salle1"
        }
    ],
    [
      {
            "PTF_NAME": "Qualif",
            "Salle": "salle1"
      },
      {
            "PTF_NAME": "Qualif",
            "Salle": "salle1"
      }
    ],
    [
      {
            "PTF_NAME": "Qualif",
            "Salle": "salle2"
      },
      {
            "PTF_NAME": "Qualif",
            "Salle": "salle2"
      }
    ],
    [{
            "PTF_NAME": "Prod",
            "Salle": "salle1"
        },
        {
            "PTF_NAME": "Prod",
            "Salle": "salle1"
        }
    ],
    [{
            "PTF_NAME": "Prod",
            "Salle": "salle2"
      },
        {
            "PTF_NAME": "Prod",
            "Salle": "salle2"
        }
    ]
];
function removeDupesInArrayOfObject() {
  const result = [];
  result.push(this.data[0]);
  data.reduce( (first, second, n) => {
      if (first[0].PTF_NAME !== second[0].PTF_NAME) {
          result.push(second);
      }
      return second
  })
  console.log(result);
}
removeDupesInArrayOfObject();
0 голосов
/ 21 апреля 2020

Вы можете использовать метод filter ().

this.nouveau_data_historique.filter((item,index) => {
  return this.nouveau_data_historique.indexOf(item) === index
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...