2

I'm trying to clean a this array:


 [
    {
      "Cpf": null,
      "Nascimento": null,
      "Sexo": null,
      "OnlyPerson": false,
      "IsFinanc": false,
      "Senha": null,
      "ConfirmaSenha": null,
      "Remover": false,
      "TipoStr": null,
      "FiltroStr": null,
      "IdAgenciaLogarComo": 0,
      "DontHashPass": false,
      "IsPessoaSimples": false,
      "IsVisitante": false,
      "Permited": false,
      "Id": 21980,
      "Nome": "arrozfeijao",
      "Ativo": true,
      "Criacao": "2021-08-19T14:09:06.173",
      "UltimaAlteracao": null,
      "Email": "[email protected]",
      "IdAgencia": 1,
      "IdEndereco": null,
      "IdPermissao": 4,
      "Observacoes": null,
      "Endereco": {
        "Id": 0,
        "Cep": null,
        "Logradouro": null,
        "Numero": null,
        "Complemento": null,
        "Bairro": null,
        "Estado": null,
        "Cidade": null
      },
      "Parceiro": null,
      "Contato": [],
      "Permissao": {
        "Id": 4,
        "Descricao": "Cliente",
        "Pessoa": []
      },
      "AlterarSenha": [],
      "Rede": [],
      "Provider": [],
      "AlertaPreco": [],
      "Pedido2": [],
      "_PageNumber": 0,
      "PageNumber": 0,
      "PageSize": 0,
      "OrderBy": null,
      "OrderDesc": false
    }
  ]

This array is a checkbox selected in a table -> enter image description here I need a function to clean array fo every time I select one more checkbox. I has tryied to push all I need to new a variable, but if a select other checkbox (with other informations) dont work...

I need export to CSV this informations, but I don't need all this, I just wanna:

  • "Cpf"
  • "Nascimento"
  • "Sexo"
  • "Id"
  • "Nome"
  • "Ativo"
  • "Criacao"
  • "UltimaAlteracao"
  • "Email"
  • "Observacoes"
  • "Endereco".

I know a i need a for, i just do no how to make this function :c

4
  • 1
    How many objects will there be in the array? Commented Aug 27, 2021 at 18:40
  • Also: no you don't. JS offers quite a few methods to work with array data, including Array.filter which is almost certainly more appropriate in this case (unless you're optimizing already working code, which is pretty clearly not the case here yet). Commented Aug 27, 2021 at 18:44
  • Unmitigated, if select all? i do ha no idea haha a lot Mike 'Pomax' Kamermans, how i can make this function using Array.filter in my case? suposing my variable is multipleSelection.data and contain this array up us Commented Aug 27, 2021 at 18:52
  • @Veterano I posted an answer which handles multiple objects in your array. Please comment, if this solves your problem. Commented Aug 28, 2021 at 7:37

2 Answers 2

1

As it looks like your data belongs to one person and there could be multiple persons, here is a solution:

Declare your arrays:

data: function () {
  return {
    oldArray: [],
    includesArray: ["Cpf", "Nascimento", "Sexo", "Id", "Nome", "Ativo", "Criacao", "UltimaAlteracao", "Email", "Observacoes", "Endereco"],
    newArray: []
  }
}

oldArray would the the data from your question, includesArray are the keys you want to transfer to the new array and newArray will have this data.

Add this to you component:

created() {
    for (const [key] of Object.entries(this.oldArray)) {
      let tempObject = {};
      for (const [keys, values] of Object.entries(this.oldArray[key])) {
        if (this.includesArray.includes(keys)) {
          tempObject[keys] = values;
        }
      }
      this.newArray[key] = tempObject;
    }
  }
Sign up to request clarification or add additional context in comments.

1 Comment

The problem now is clean array, case user Unselect a checkbox, I gonna make work thanks a lot
0

You can use Lodash pick method to pick the properties from object and you can map it and the pseudo-code is

let newArray = oldArray.map(item => {
return _.pick(item, ['id', 'name']);
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.