Const people = [ { name: 'siddiq', age: 20} , { name: 'anas', age: 19}] Const arr = people.reduce((acc, curr) => acc.push(curr.age), [])No está trabajando. Lo que quiero es crear una matriz con solo edades...??
Deberías usar map() en su lugar:
const people = [ { name: 'siddiq', age: 20} , { name: 'anas', age: 19}] const arr = people.map(p => p.age) //[20, 19]reduce() requiere que devuelva el acumulador desde la función de devolución de llamada (ya que el acumulador podría no ser un objeto mutable). push() devuelve la longitud de la matriz actualizada, por lo que la segunda iteración intenta hacer (1).push(curr.age, []) , que no funciona.
El operador de coma es útil para esto en funciones de flecha.
Además, no hay razón para presionar [] en acc .
const people = [ { name: 'siddiq', age: 20} , { name: 'anas', age: 19}] const arr = people.reduce((acc, curr) => (acc.push(curr.age), acc), []); console.log(arr);Otra opción es usar la sintaxis de propagación para asegurarse de devolver una matriz dentro del método de reduce de una manera más limpia y moderna.
const people = [ { name: 'siddiq', age: 20} , { name: 'anas', age: 19}] const arr = people.reduce((acc, curr) => [...acc, curr.age], []); console.log(arr);