Tengo un objeto con algunas claves y solo quiero conservar algunas de las claves con su valor.
Probé con filter :
const data = { aaa: 111, abb: 222, bbb: 333 }; const result = _.filter(data, (value, key) => key.startsWith("a")); console.log(result); <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>Pero imprime una matriz:
[111, 222]
Que no es lo que quiero.
¿Cómo hacerlo con lodash? ¿O algo más si lodash no funciona?
Lodash tiene una función _.pickBy que hace exactamente lo que estás buscando.
var thing = { "a": 123, "b": 456, "abc": 6789 }; var result = _.pickBy(thing, function(value, key) { return _.startsWith(key, "a"); }); console.log(result.abc) // 6789 console.log(result.b) // undefined <script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>Aquí hay un ejemplo usando lodash 4.x:
const data = { aaa: 111, abb: 222, bbb: 333 }; const result = _.pickBy(data, (value, key) => key.startsWith("a")); console.log(result); // Object { aaa: 111, abb: 222 } <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script> <strong>Open your javascript console to see the output.</strong>