Reduzindo objetos para acesso de um nível [Javascript,Object]

팔라 포보 가다랭이 😀
Hoje venho aqui apresentar para vocês um package que eu criei bem simples para reduzir ou transformar objetos complexos em objetos mais simples.
Bora conferir isso ? 😀

오 문제



Constantemente em javascript nós temos que fazer o parse de arquivos json para objetos, ou ainda, recebemos dados de uma determinada fonte (um body de uma requisição http por exemplo) e precisamos fazer o parse daquelas informações. O problema é que as vezes nós precisamos processor todo o objeto, mapeando-o para uma classe para então definir um modelo para aquela informação e na maioria das vezes esse é o caminho correto, porém existem situações em que fazer esse mapeamento, ou seja, Definir um modelo para essa estrutura não é sequer possível devido a dinamicidade dos possíveis dados de entrada.
Então, se não consigo definir um modelo para esses dados, como saber se determinada propriedade existe nos dados recebidos ? Aí que vem o nosso package do dia, o object-reducer-js;

객체 리듀서-js



O package é bem simples, ele serve para reduzir um objeto para um objeto de nível único.

Normalmente um object em javascript tem vários níveis de acesso, por example:

const object = {
  propriedade1: 1,
  innerObject:{
    propriedade2: 2
  }
}


Ou seja, se eu quiser ler o valor do campo propriedade2 precisamos fazer

object.innerObject.propriedade2
o que neste caso é relativamente simples, porém Imagine que essa estrutura varie conforme diferentes fontes ou pior, varie na mesma fonte.
패키지 객체-리듀서-js, ele vai reduzir, ou seja simplificar, o objeto alvo, trazendo todas as propriedades não nulas para o primeiro nível de acesso.
Por exemplo esse objeto que analisamos, após passá-lo pelo package ele ficaria assim:

const objectReduced = {
  propriedade1: 1,
  propriedade2: 2
}



Ou seja, após simplificar o objeto, para saber se determinada propriedade existe basta você fazer

objectReduced .propriedade
, 필요에 따라 파저 또는 구문 분석을 제거합니다 😀

실례



Como todo bom artigo de programação, na minha humilde opinião, precisa de um exemplo prático aqui vai um pequeno trecho de código que mostra o package em ação!


const objectReducer = require('object-reducer-js');

const complexObject = {
 originIp:'192.168.0.1',
  hostData:{
    subRede:'192.168.0.0',
    hostName: 'www.localhost.com.br',
    identityId:'74512dsw',
    hostDetails:{
      geoInformation:{
        long:'45.145',
        lat: '78.412'
      },
      isAuth: true
    }
  }
}

// Fazendo um acesso regular ao objeto 

console.log('Está autenticado ?',  complexObject.hostData.hostDetails.isAuth);

const reducedObject =  objectReducer.reduceObjectSync(complexObject);

// objeto reduzido vai ser dessa forma

/* {
  originIp:'192.168.0.1',
  subRede:'192.168.0.0',
  hostName: 'www.localhost.com.br',
  identityId:'74512dsw',
  long:'45.145',
  lat: '78.412',
  isAuth: true
 }
*/

// Fazendo acesso após reduzir o objeto

console.log('Está autenticado ?',  reducedObject.isAuth);


Dessa forma conseguimos reduzir objeto para acesso a um level apenas, acessando todas as propriedades com muito mais comodidade.

패키지 다운로드



Para baixar o package basta instalá-lo utilizando o npm:
npm i object-reducer-js
Dá uma olhada na página do package para checar todas as possibilidades de uso e mais detalhes 😀:
https://www.npmjs.com/package/object-reducer-js

Bom é isso, essa foi a dica de hoje, espero que lhes seja útil em algum momento. Fiquem com Deus e até a próxima 😀

좋은 웹페이지 즐겨찾기