jQuery $ .each()没有像预期那样处理对象

dSq*_*red 7 javascript jquery

我有以下对象:

var objectVar = {
    4 : { "key" : "key-name4", "item4" : {} },
    3 : { "key" : "key-name3", "item3" : {} }
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试以下方法:

$(objectVar).each(function(index,record){
    console.log(record); // Loops Only Once and Logs Full Object
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决为什么$ .each(); 函数inst迭代主对象中的子对象?

任何帮助,将不胜感激!

use*_*716 11

"任何人都可以帮我解释为什么$ .each();函数会迭代主对象中的子对象吗?"

要循环子对象,需要子循环.

虽然像你一样使用each()[docs]方法通常有时会工作(就像现在这样),但它确实适用于DOM元素.

而是使用jQuery.each()[docs]方法:

$.each( objectVar, function(index,record){
    console.log(record); 

      // start a loop on the current record in the iteration
    $.each( record, function( index2, sub_record ) {
        console.log( index2, sub_record );
    });
});
Run Code Online (Sandbox Code Playgroud)

现在,您的循环将扩展到第一级嵌套对象.

如果您不确定整体结构,并且想要枚举整个深度,则需要测试遇到的每个值以查看是否应该枚举它.