Removing object properties with Lodash

javascript, lodash

Solution

Get a list of properties from `model` using `_.keys()`, and use `_.pick()` to extract the properties from `credentials` to a new object:

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>

If you don't want to use Lodash, you can use `Object.keys()`, and `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);

Problem

I have to remove unwanted object properties that do not match my model. How can I achieve it with Lodash? My model is: ``` var model = { fname: null, lname: null } ``` My controller output before sending to the server will be: ``` var credentials = { fname: "xyz", lname: "abc", age: 23 } ``` I am aware I can use ``` delete credentials.age ``` but what if I have lots of unwanted properties? Can I achieve it with Lodash?

Original source