underscore tutorial react que lodash

tutorial - lodash vs underscore



eliminando propiedades de objetos con lodash (3)

Obtenga una lista de propiedades del model usando _.keys() , y use _.pick() para extraer las propiedades de las credentials a un nuevo objeto:

var model = { fname:null, lname:null }; var credentials = { fname:"xyz", lname:"abc", age:23 }; var result = _.pick(credentials, _.keys(model)); console.log(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

Si no desea utilizar lodash, puede usar Object.keys() y Array.prototype.reduce() :

var model = { fname:null, lname:null }; var credentials = { fname:"xyz", lname:"abc", age:23 }; var result = Object.keys(model).reduce(function(obj, key) { obj[key] = credentials[key]; return obj; }, {}); console.log(result);

Tengo que eliminar las propiedades de objeto no deseadas que no coinciden con mi modelo. ¿Cómo puedo lograrlo con lodash.

Mi modelo es

var model = { fname:null, lname:null }

La salida de mi controlador antes de enviar al servidor será

var credentials = { fname:"xyz", lname:"abc", age:23 }

si yo uso

_.extend (model, credentials)

Estoy recibiendo propiedad de edad también. Soy consciente de que puedo usar

delete credentials.age

pero qué pasa si tengo más de 10 objetos no deseados. ¿Puedo lograrlo con lodash.


Puede abordarlo desde una lista blanca o una lista negra:

// Black list // Remove the values you don''t want var result = _.omit(credentials, [''age'']); // White list // Only allow certain values var result = _.pick(credentials, [''fname'', ''lname'']);

Si se trata de una lógica empresarial reutilizable, también puede dividirla:

// Partial out a black list version var clean = _.partial(_.omit, _, [''age'']); // and later var result = clean(credentials);


Puedes hacerlo fácilmente usando _.pick:

var model = { fname:null, lname:null }; var credentials = { fname: ''abc'', lname: ''xyz'', age: 2 }; var result = _.pick(credentials, _.keys(model)); console.log(''result ='', result);

<script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>

Pero simplemente puedes usar JavaScript puro (especialmente si usas ES6), así:

const model = { fname: null, lname: null }; const credentials = { fname: ''abc'', lname: ''xyz'', age: 2 }; const newModel = {}; Object.keys(model).forEach(key => newModel[key] = credentials[key]); console.log(''newModel ='', newModel);