Tengo una serie de cadenas como esta:
const deepProperties = ['contactPerson', 'firstName']
¿Cómo se puede acceder a la propiedad contactPerson.firstName
(obtener y establecer) de un objeto anónimo que tiene esta matriz de cadenas a mano?
const unknown = { contactPerson: { firstName: 'Jane' } }
Sé que puedo hacer unknown['contactPerson']['firstName']
para obtener el valor y unknown['contactPerson']['firstName'] = 'John'
para establecer un nuevo valor, pero ¿cómo llego allí desde el ¿formación?
Por ejemplo:
const get = require('lodash.get'); const set = require('lodash.set'); const deepProperties = ['contactPerson', 'firstName'] const unknown = { contactPerson: { firstName: 'Jane' } } get(unknown, deepProperties.join(".")) // 'Jane' set(unknown, deepProperties.join("."), "Mary") // { contactPerson: { firstName: 'Mary' } }
Tenga en cuenta que esto también funcionaría si las propiedades incrustadas incluyeran matrices, por ejemplo:
const props = ["users[1]", "name"]; const org = { users:[{name:"joe",age:21}, {name:"mary",age:29}] }; get(org, props.join(".")); // 'mary'