2015-10-23 2 views
0

Я пытаюсь выполнить итерацию по значениям свойств объекта. вот мой кодИтерация значений с использованием Object.Keys

var player = 
{ 

    name: 'kaka', 
    age: 33, 
    address: '22 green street', 
    sayHello: function() { 
     console.log('my name is ' + this.name + "my age is " + this.age); 
    } 
} 

var myProperties = Object.keys(player); 

for (var i = 0; i < myProperties.length; i++) { 
    console.log(myProperties[i]); 

} 

Но он отображает только свойства и не значение. Как я могу пройти через такие значения, как 'kaka' for name.. Спасибо.

+0

Почему бы не выполнить 'for (var key in player) {var value = player [key]; } '? –

ответ

1

Вы должны использовать ключи как поиск в исходном объекте

for (var i = 0; i < myProperties.length; i++) { 
    if(typeof player[myProperties[i]] !== 'function'){ 
      console.log(player[myProperties[i]]); 
    } 
} 

В конце концов, я не уверен, что вы получите много создания и переборе ключей против использования for in петли для этого случая использования

+0

Пожалуйста, расскажите мне, как это делается, поскольку я новичок. Я имею в виду игрока [myProperties [i]] .. почему мы используем квадратные скобки? –

+0

может использовать эту функцию с помощью 'for (var key in player) {console.log (player [key]}' ... '' [] 'необходимы для имен свойств переменной – charlietfl

+0

ok спасибо за подсказку. –

0

Обратите внимание, что поскольку Object.keys возвращает массив, вы можете использовать итератор как Foreach для удобства:

Object.keys(player).forEach(function(key) { 
    console.log(key + ': ' + player[key]); 
}); 
Смежные вопросы