Подтвердить что ты не робот

Как получить список пар ключевых значений в объекте?

Возможный дубликат:
лучший способ получить ключ от объекта javascript для ключа/значения

foo = {bar: "baz" }

Как вы получаете список всех свойств и значений внутри foo?

4b9b3361

Ответ 1

Цикл 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])
    }
}

Ответ 2

Вы можете выполнить цикл:

for(var i in foo) {
  console.log( i + ": " + foo[i] + "<br />");
}

Демо

Ответ 3

Это может быть разным для разных платформ, на которых вы сейчас работаете. Если вы используете терминал, вы используете 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