1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Aceder a um array dentro de um objecto

Discussão em 'Programação' iniciada por geldof, 6 de Dezembro de 2018 às 14:13. (Respostas: 1; Visualizações: 159)

  1. Boa tarde,

    Tenho uma dúvida numa operação em Javascript. Tenho o seguinte objecto:

    var userslist= {email:'[email protected]',
    type:'basic',
    free_space:2048,
    files= [{name_file:'file1', size:100}, {name_file:'file2', size:512}]
    }

    ou seja, é um objecto que dentro dele tem um array de objectos com o nome files que contem as propriedades name_file e size.

    O meu objectivo é criar uma função para que, da propriedade free_space do objecto pai, seja descontado o valor que está em cada uma das propriedades size dos objectos existentes no array.

    Estou a tentar com for loops mas ha alguma coisa que nao está a correr bem.. alguem tem uma dica?

    Obrigado desde já
     
  2. mcog_blaster

    mcog_blaster Power Member

    por ex, algo do género
    Código:
    var userslist= [{
            email: '[email protected]',
            type: 'basic',
            free_space: 2048,
            files: [{
              name_file:'file1',
              size:100
            }, {
              name_file:'file2',
              size:512
            }]
          }, {
            email: '[email protected]',
            type: 'basic',
            free_space: 2048,
            files: [{
              name_file:'file1',
              size:100
            }, {
              name_file:'file2',
              size:512
            },{
              name_file:'file3',
              size:865
            }]
          }]
    
    var updateFreeSpace = function (user) {
      var filesSpace = user.files.reduce(function(acc, current){
        return acc + current.size
      }, 0);
     
      return {
        email: user.email,
        type: user.type,
        free_space: user.free_space - filesSpace,
        files: user.files
      }
     
    }
    
    
    console.log(userslist.map(updateFreeSpace));
     

Partilhar esta Página