Можно ли выполнить цикл по объекту и получить имена ключей ($ key => $ value)? - PullRequest
1 голос
/ 23 августа 2011

В PHP мы можем перебрать ассоциативный массив и получить значения и ключ, и значение следующим образом:

$myArray = array(
    'key1' => 'value1',
    'key2' => 'value2'
);

foreach($myArray as $key => $val){
    echo 'The value of "'.$key.'" is "'.$val.'".\n';
}

/* Output:
The value of "key1" is "value1".
The value of "key2" is "value2".
*/

Есть ли способ сделать это в javascript?

myObject = { 
    'key1': 'value1',
    'key2': 'value2'
};

for (val in myObject) {
    // check hasOwnProperty and what not...

    // Now, how do I get the key value?
}

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

У вашего вопроса обратная концепция: цикл for / in в JavaScript возвращает ключ, а не значение.Затем вы получите значение с помощью ключа.

var myObject = { 
        'key1': 'value1',
        'key2': 'value2'
    },
    key,
    val;

for( key in myObject )
{
    if( Object.prototype.hasOwnProperty.call( myObject, key ) )
    {
       val =  myObject[key];
    }
}
2 голосов
/ 23 августа 2011

Это просто, используя myObject[val]

...