Возможный дубликат:
лучший способ получить ключ от объекта 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