Estoy creando un calendario de reservas usando el selector fácil e importando datos usando una API de terceros en una base de datos mySQL. Obtuve los datos en la base de datos y puedo acceder a ellos en Javascript (en el que soy nuevo). Estoy tratando de eliminar todos los índices menos uno de una matriz de matrices, pero no importa cómo intente hacer el ciclo, obtengo un .pop() indefinido, aunque me aseguré de que el objeto sea una matriz de matrices.
$.ajax({ url : 'get_data.php', // this fetches the booking info from 3rd party => DB type : 'GET', // type of the HTTP request success : checkAvail, }); function checkAvail(response) { results = response; var results = jQuery.parseJSON(response); availables = results.filter(a => a.isAvailable === '1'); console.log(availables); // displays the array of arrays for avail dates availables.forEach((available) => { available.pop(2); // **Uncaught TypeError: available.pop is not a function }); console.table(availables); }salida de console.log (disponibles)
[ { "id": "79653836", "date": "2022-07-09", "isAvailable": "1", "price": "2188" }, { "id": "79653838", "date": "2022-07-10", "isAvailable": "1", "price": "1750" }, { "id": "79653840", "date": "2022-07-11", "isAvailable": "1", "price": "1750" }, { "id": "79653842", "date": "2022-07-12", "isAvailable": "1", "price": "1750" } ]availables es una matriz de objetos, no una matriz de matrices.
Para obtener una propiedad particular de un objeto, use .propname , así que use available.date para obtener la fecha.
Puede usar map() para devolver una nueva matriz que usa esto para obtener las propiedades.
const availables = [ { "id": "79653836", "date": "2022-07-09", "isAvailable": "1", "price": "2188" }, { "id": "79653838", "date": "2022-07-10", "isAvailable": "1", "price": "1750" }, { "id": "79653840", "date": "2022-07-11", "isAvailable": "1", "price": "1750" }, { "id": "79653842", "date": "2022-07-12", "isAvailable": "1", "price": "1750" } ]; const dates = availables.map(a => a.date); console.log(dates);