jQuery: $.each() 递归清空对象

jQuery: $.each() recursion empties the object

本文关键字:递归 清空 对象 each jQuery      更新时间:2023-09-26

我有一个 json 对象,它有 key:value 对,还有格式相同的对象,key:value

我正在尝试像这样在同一个循环中输出keyvalue

 populateUpdateForm: function(data) {
    // console.log(typeof(data));
    // console.log(data);
    $.each(data, function(i, v){
        if ( typeof(v) == 'object' ) {
            populateUpdateForm(v);
            // return false;
        }
        console.log(i, v);
    });
}

只要当前v是字符串,它就会正确输出它,但是一旦我点击一个对象并再次启动循环,即使typeof()显示对象,console.log(data)也会empty

有什么方法可以解决这个问题吗?

谢谢

编辑 无论是否断开循环,都会导致相同的错误,Uncaught TypeError: Cannot read property 'length' of null jquery.min.js 文件中

EDIT2 这里 https://jsfiddle.net/7rLesm4y/是一个 jsfiddle,它是我的代码的复制/粘贴。我使用相同的jQuery版本,但是在本地主机上出现错误,而在jsfiddle上,它按我的预期工作。

问题在于null值和$.each循环。虽然它似乎可以jQuery v2.2.0但它在旧版本上抛出错误,TypeError: obj is null在 FF 上,在 Chrome 上Cannot read property 'length' of null