Estoy tratando de extraer la identificación de la siguiente matriz de objetos y hasta ahora puedo intentarlo con el código a continuación, pero se muestra indefinido y no puede obtener la identificación, ¿podría verificar el código y ajustar para obtener la identificación?
const array = [{ contact: { id: 1, email: 'roar@gmail.com', }, date: '2/4/22' }, { contact: { id: 2, email: 'grr@gmail.com', }, date: '2/4/22' } ] function extractValue(arr, prop) { let extractedValue = []; for (let i = 0; i < arr.length; ++i) { // extract value from property extractedValue.push(arr[i][prop]); } return extractedValue; } const result = extractValue(array, 'contact.id'); console.log(result);const extractValue = (array, path) => { const [first, second] = path.split('.') if (second) return array.map(obj => obj[first][second]) return array.map(obj => obj[first]) } const res = extractValue(array, 'contact.id') console.log(res) // => [ 1, 2 ]esto admitirá resultados anidados de nivel simple y doble
Una buena manera de hacer esto es el método Array Map .
Esto obtendrá todas las identificaciones de su matriz
const result = array.map((val) => val.contact.id)function find(val, arr) { for (let x of arr) val = val[x]; return val; } function extractValue(arr, prop) { return array.map(x => find(x, prop.split("."))) }