Tengo valores dentro de los objetos de la matriz y se supone que debo completarlos en un formato legible, pero me quedé atascado porque la salida recibe un error como "[Objeto de objeto] indefinido".
mi resultado deseado se supone que es como:
Saab - Smodel1, Smodel2, Smodel3, Volvo - Vmodel1, VmodeL2, Vmodel3, BMW - Bmodel1, Bmodel2, Bmodel3,
aquí está mi código:
const cars = [{ "Saab":["Smodel1", "Smodel2", "Smodel3"], "Volvo":["Vmodel1", "Vmodel2", "Vmodel3"], "BMW":["Bmodel1", "Bmodel2", "Bmodel3"] }]; let car_model = ''; for(let i = 0; i < cars.length; i++) { car_model += cars[i] + "-" + cars[i][i] + "<br/>"; }agregado como referencia
var cars = var car, hash; for (var model in cars) { car = key; hash = cars[key]; get(car, hash); seen(car, hash); (function loop(car, hash) { setTimeout(function () { get(car, hash); loop(car, hash); }, 1000); })(car, hash); }Salida actual: [objeto Objeto] indefinido
Puede recorrer el único objeto único en su matriz usando Object.entries(...) y luego Array.map(...) los valores a las cadenas deseadas. String.join(...) también será de gran ayuda, ya que le permite unir fácilmente una matriz a una sola cadena, con un separador dado.
const cars = [{ "Saab":["Smodel1", "Smodel2", "Smodel3"], "Volvo":["Vmodel1", "Vmodel2", "Vmodel3"], "BMW":["Bmodel1", "Bmodel2", "Bmodel3"] }]; console.log( Object .entries(cars[0]) // take your first (and only) element and split it into key value pairs .map(([key, values]) => // map the key value pairs `${key} - ${values.join(",")}` // to the desired output format ) .join(",") // join the mapped values by a , )const cars = { "Saab":["Smodel1", "Smodel2", "Smodel3"], "Volvo":["Vmodel1", "Vmodel2", "Vmodel3"], "BMW":["Bmodel1", "Bmodel2", "Bmodel3"] }; car_models = ''; for (let i=0; i < Object.keys(cars).length; i ++) { models = cars[Object.keys(cars)[i]]; car_models += Object.keys(cars)[i] + " " + models.join(); }Salidas
Saab Smodel1,Smodel2,Smodel3Volvo Vmodel1,Vmodel2,Vmodel3BMW Bmodel1,Bmodel2,Bmodel3Si desea usar solo bucles for tradicionales
const cars = [{ "Saab":["Smodel1", "Smodel2", "Smodel3"], "Volvo":["Vmodel1", "Vmodel2", "Vmodel3"], "BMW":["Bmodel1", "Bmodel2", "Bmodel3"] }]; let car_model = ''; for(let i = 0; i < cars.length; i++) { const brands = Object.keys(cars[i]); for (let j = 0; j < brands.length; j++) { const models = cars[i][brands[j]]; for (let k = 0; k < models.length; k++) { car_model += brands[j] + "-" + models[k] + "<br/>"; } } } console.log(car_model)