JQuery: Проникнуть через объект правильно?

Я пытаюсь пропустить описанный ниже JS-объект со следующим фрагментом кода, в то время как вам нужно получить как ключ индекса, так и внутренний объект.

Как я должен это делать, поскольку следующее не работает?

Объект:

({ prop_1:["1", "2"],
 prop_2:["3", "4"]})

Мой код:

$.each(myObject, function(key,valueObj){
    alert(key + "/" + valueObj.toSource() );
});

Ожидаемый результат:

prop_1 / (["1", "2"])

Ответы

Ответ 1

Внутренний объект, который вы извлекаете отлично, valueObj - это массив, он просто не имеет метода .toSource() (по крайней мере, не перекрестного браузера), если вы удалите его, вы получите предупреждение:

$.each(myObject, function(key,valueObj){
    alert(key + "/" + valueObj );
});

Вы можете проверить это здесь, не следует бросать, что выход просто:

prop_1/1,2
prop_2/3,4

... по умолчанию .toString() в массиве - это список с разделителями-запятыми, так что вы видите с alert(). Например, если вы сделали alert(key + "/" + valueObj[0] );, вы увидите:

prop_1/1
prop_2/3

... так что вы можете видеть, что у вас есть массив, который вы хотите, вы можете проверить это здесь.

Ответ 2

Вы можете использовать цикл for for:

    var myObject = ({ prop_1:["1", "2"], prop_2:["3", "4"]})
    for (var key in myObject) {
       if (myObject.hasOwnProperty(key)) {
           alert(key + "/" + myObject[key]);
        }
     }