Возможный дубликат:
лучший способ получить ключ от объекта javascript для ключа/значения
foo = {bar: "baz" }
Как вы получаете список всех свойств и значений внутри foo?
Возможный дубликат:
лучший способ получить ключ от объекта javascript для ключа/значения
foo = {bar: "baz" }
Как вы получаете список всех свойств и значений внутри foo?
Цикл for in может дать вам ключ и значение.
for(p in foo) {
console.log (p, foo[p])
}
Из консоли:
foo = {bar: "baz"}
Object
bar: "baz"
__proto__: Object
for(p in foo) { console.log (p, foo[p]) }
> bar baz
Если зацикленный объект имеет унаследованные свойства от своего прототипа, вы можете предотвратить зацикливание унаследованных свойств, используя Object.hasOwnProperty() например:
for(p in foo) {
if (foo.hasOwnProperty(p)) {
console.log (p, foo[p])
}
}
Вы можете выполнить цикл:
for(var i in foo) {
console.log( i + ": " + foo[i] + "<br />");
}
Это может быть разным для разных платформ, на которых вы сейчас работаете. Если вы используете терминал, вы используете print, если у вас нет объекта console, вы можете использовать document.write() и так далее.
Вот что вы можете использовать/прочитать для понимания:
var foo = {bar: "baz", boolean: true, num: 2}
for (i in foo) {
//checks to see where to print.
if (typeof console === 'object')
console.log(i + ": " + foo[i]);
else if (typeof document === 'object')
document.write(i + ": " + foo[i]);
else
print(i + ": " + foo[i]);
}
В качестве альтернативы, если вы просто скажете console.log(foo) в Chrome/Firefox, браузеры сделают выделение циклов для вас и дадут вам красивую печать вашего объекта, поэтому вам действительно не нужно делать цикл, показанный выше.
Вы также можете использовать console.debug(foo) вместо console.log(foo), разница тонкая. Вы можете узнать больше об этом на http://getfirebug.com/wiki/index.php/Console_API