Sé que hay varias preguntas similares sobre Stack Overflow, pero a pesar de probar varios métodos, sigo atascado.
Estoy tratando de atravesar una matriz JSON de objetos con una estructura como esta
{ "categories": [ { "category_id": "198", "category": "Appliances", "seo_name": "appliances", }, { "category_id": "184", "category": "Industrial Appliances", "seo_name": "industrial-appliances" }, "params": { "visible": false, "sort_order": "asc", }}
Quiero obtener la categoría y el nombre de SEO de cada objeto dentro de las categorías.
Esto es lo que probé:
fetch(url, { method: "GET", headers: headers, }) .then((response) => response.json()) .then((json) => { for (let i in json) { console.log(json.categories[i].category); } });La respuesta que recibo es:
console.log(json.categories[i].category); ^ TypeError: Cannot read properties of undefined (reading 'category')¿Cómo obtengo los campos de categoría y nombre de SEO para cada objeto dentro de la matriz de categorías?
Su bucle estuvo bastante cerca: intente usar el bucle for..of :
const json = { categories: [ { category_id: "198", category: "Appliances", seo_name: "appliances", }, { category_id: "184", category: "Industrial Appliances", seo_name: "industrial-appliances", }, ], params: { visible: false, sort_order: "asc", }, }; for (let category of json.categories) { console.log(category.category + ', ' + category.seo_name) }Alternativamente, así es como lo haría con un bucle for tradicional:
const json = { categories: [ { category_id: "198", category: "Appliances", seo_name: "appliances", }, { category_id: "184", category: "Industrial Appliances", seo_name: "industrial-appliances", }, ], params: { visible: false, sort_order: "asc", }, }; for (let i = 0; i < json.categories.length; i++) { const category = json.categories[i] console.log(category.category + ', ' + category.seo_name) }