使用过滤器和映射后从数组中删除对象

时间:2019-03-08 15:10:57

标签: javascript arrays angularjs object filter

我有一个名为listDeTipoAtendimento的数组

0: {tipoAtendimento: "ESTUDANTE", tipoServico: "ESTUDANTE", atendente: "José da Silva"}
1: {tipoAtendimento: "Gestante", tipoServico: "teste Bilhetagem", atendente: "Juliana de Olivieira"}
2: {tipoAtendimento: "Idoso", tipoServico: "Recadastramento", atendente: "Supervisor de Posto 65"}
3: {tipoAtendimento: "Idoso", tipoServico: "Recadastramento", atendente: "Atendente Posto  Teste MBA"}
4: {tipoAtendimento: "Idoso", tipoServico: "Emissão da Segunda Via", atendente: "Atendente Posto  Teste MBA"}
5: {tipoAtendimento: "Idoso", tipoServico: "Recadastramento", atendente: "Atendente Posto  17012019"}
6: {tipoAtendimento: "Comum", tipoServico: "Comum 11012019", atendente: "Atendente Posto  Teste MBA"}
7: {tipoAtendimento: "012", tipoServico: "teste de serviço ", atendente: "Atendente Posto  Teste MBA"}
8: {tipoAtendimento: "ESTUDANTE", tipoServico: "ESTUDANTE", atendente: "Atendente Posto  Teste MBA"}
9: {tipoAtendimento: "Idoso", tipoServico: "Recadastramento", atendente: "Atendente Posto 16082018"}

我对待他如下:

$scope.listDeTipoAtendimentoObject = $scope.listDeTipoAtendimento
.map(x => {
   return { deTipoAtendimento: x.tipoAtendimento, atendente: x.atendente }
});

$scope.listDeTipoAtendimentoObject.forEach(item => {
    item.deServico = $scope.listDeTipoAtendimento
    .filter(x => x.tipoAtendimento == item.deTipoAtendimento && x.atendente == item.atendente)
    .map(x => x.tipoServico);
    item.deServico = $scope.removeDuplicates(item.deServico);

});

//função que remove as duplicatas

$scope.removeDuplicates = function (arr) {
    let s = new Set(arr);
    let it = s.values();
    return Array.from(it);

,数组现在看起来像这样:

0: {deTipoAtendimento: "ESTUDANTE", atendente: "José da Silva", deServico: Array(1), $$hashKey: "object:2883"}
1: {deTipoAtendimento: "Gestante", atendente: "Juliana de Olivieira", deServico: Array(1), $$hashKey: "object:2884"}
2: {deTipoAtendimento: "Idoso", atendente: "Supervisor de Posto 65", deServico: Array(1), $$hashKey: "object:2885"}
3: {deTipoAtendimento: "Idoso", atendente: "Atendente Posto  Teste MBA", deServico: Array(2), $$hashKey: "object:2886"}
4: {deTipoAtendimento: "Idoso", atendente: "Atendente Posto  Teste MBA", deServico: Array(2), $$hashKey: "object:2887"}
5: {deTipoAtendimento: "Idoso", atendente: "Atendente Posto  17012019", deServico: Array(1), $$hashKey: "object:2888"}
6: {deTipoAtendimento: "Comum", atendente: "Atendente Posto  Teste MBA", deServico: Array(1), $$hashKey: "object:2889"}
7: {deTipoAtendimento: "012", atendente: "Atendente Posto  Teste MBA", deServico: Array(1), $$hashKey: "object:2890"}
8: {deTipoAtendimento: "ESTUDANTE", atendente: "Atendente Posto  Teste MBA", deServico: Array(1), $$hashKey: "object:2891"}
9: {deTipoAtendimento: "Idoso", atendente: "Atendente Posto 16082018", deServico: Array(1), $$hashKey: "object:2892"}

我的问题是第二个数组同时包含索引3和索引4元素,但是当我将deServico的这个结点中的一个要删除的对象之一删除时,我需要它们,但是我做不到。

0 个答案:

没有答案