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" undefined
Descubrí 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