【发布时间】:2016-05-12 14:11:23
【问题描述】:
我有一个包含 key:value 对的 json 对象以及格式相同的对象 key:value
我正在尝试像这样在同一个循环中输出key 和value
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 是一个字符串,它就会正确输出它,但是只要我碰到一个对象并再次开始循环,console.log(data) 就是empty,即使typeof() 显示一个对象。
有什么办法可以解决这个问题?
谢谢
编辑无论是否中断循环都会导致相同的错误,jquery.min.js 文件中的Uncaught TypeError: Cannot read property 'length' of null
EDIT2 这里https://jsfiddle.net/7rLesm4y/ 是一个jsfiddle,它是我的代码的复制/粘贴。我使用的是相同的 jQuery 版本,但在 localhost 上出现错误,而在 jsfiddle 上它按我的预期工作。
【问题讨论】:
-
它应该是数组而不是对象再次迭代。
-
@Braj
$.each也适用于对象。 -
@Alnitak 感谢您的纠正
-
您的 code (大部分)没问题,问题出在 data 上。你需要防止它递归
if (v === null) -
我会做
if (v !== null && typeof v === 'object') { recurse ... }
标签: javascript jquery loops recursion