Esto es probablemente algo realmente tonto, pero no entiendo por qué esto no funciona.
var a = {"cat":"large"}; a.forEach(function(value, key, map){ console.log(value); });TypeError no detectado: a.forEach no es una función
El objeto no tiene forEach , pertenece al prototipo Array . Si desea iterar a través de cada par clave-valor en el objeto y tomar los valores. Puedes hacerlo:
Object.keys(a).forEach(function (key){ console.log(a[key]); }); Nota de uso : Para un objeto v = {"cat":"large", "dog": "small", "bird": "tiny"}; , Object.keys(v) te da una serie de claves para que obtengas ["gato","perro","pájaro"]
Cuando traté de acceder al resultado de
Object.keys(a).forEach(function (key){ console.log(a[key]); });
fue un resultado de texto sin formato sin pares clave-valor Aquí hay un ejemplo
var fruits = { apple: "fruits/apple.png", banana: "fruits/banana.png", watermelon: "watermelon.jpg", grapes: "grapes.png", orange: "orange.jpg" }Ahora quiero obtener todos los enlaces en una matriz separada, pero con este código
function linksOfPics(obJect){ Object.keys(obJect).forEach(function(x){ console.log('\"'+obJect[x]+'\"'); }); }el resultado de :
linksOfPics(fruits) "fruits/apple.png" "fruits/banana.png" "watermelon.jpg" "grapes.png" "orange.jpg" undefinedDescubrí este que resuelve lo que estoy buscando.
console.log(Object.values(fruits)); ["fruits/apple.png", "fruits/banana.png", "watermelon.jpg", "grapes.png", "orange.jpg"]probablemente esté usando una cadena, considere que es un json obj
string_var.json() o JSON.parse(string_var), ahora se puede usar en foreach