Hola, soy bastante nuevo en la codificación. He intentado buscar cómo hacer esto, pero estoy perdido.
A continuación se muestran las dos funciones, que están en un objeto.
listPeople: function () { let array = [] return array; // returns an array of all people for whom tasks exist }, add: function ( name, task ) { return this.listPeople().push( name ) },Si ejecuto esto, la función de agregar devuelve 1. y devolverá 2 si presiono dos cosas, y así sucesivamente. ¿Qué está pasando aquí? ¿Cómo empujo la variable de nombre de agregar a la matriz en listpeople? La variable de nombre es 'zeke' por cierto.
Lo siento de antemano si esto no tiene sentido :D
Probablemente debería parecerse más a esto. Cree una propiedad arr e inserte objetos en ella desde add . Luego puede devolver esa lista desde listPeople .
const obj = { arr: [], listPeople: function() { return this.arr; }, add: function(name, task) { return this.arr.push({ [name]: task }); } } obj.add('bob', 'Shopping'); obj.add('Betty', 'Singing'); console.log(obj.listPeople());Lo que sucede en su código es que la función de add devuelve el resultado del método .push() (la nueva longitud de la matriz).
Si su intención es realmente devolver la matriz, debe modificar el método de add de la siguiente manera:
add: function ( name, task ) { var people = this.listPeople(); people.push(name); return people; }, Además, si bien cambiar listPeople a una propiedad de matriz en lugar de un método puede funcionar mejor en un nivel superficial, no sé qué puede haber planeado implementar en el método listPeople . Y solo puede confundir/complicar las cosas en cuanto a responder la pregunta que ha hecho.