Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“递归太多”;在这个用JavaScript编写的递归函数中(obj2str)_Javascript_Jquery_Recursion_Type Conversion_Object To String - Fatal编程技术网

&引用;“递归太多”;在这个用JavaScript编写的递归函数中(obj2str)

&引用;“递归太多”;在这个用JavaScript编写的递归函数中(obj2str),javascript,jquery,recursion,type-conversion,object-to-string,Javascript,Jquery,Recursion,Type Conversion,Object To String,这段代码是怎么写的: function obj2string(obj) { var result = ''; for(var i in obj) { if(typeof(obj[i]) === 'object') { result += obj2string(obj[i]); } else { result += i + " => " + obj[i] + "\n"; }

这段代码是怎么写的:

function obj2string(obj) {
    var result = '';

    for(var i in obj) {
        if(typeof(obj[i]) === 'object') {
            result += obj2string(obj[i]);
        } else {
            result += i + " => " + obj[i] + "\n";
        }
    }

    return result;
}
它应该递归地将结果字符串与新属性相关联,但是在某个点上有太多的递归

我正在传递这样一个对象:
$(this)->来自jQuery

$(this)

作为此jQuery选择器的实例:
$('.debug')
witch在当前文档中有一个匹配的类。

if(typeof(obj[i])==='object'){
将在
obj[i]
null
时执行。你知道吗?用
$尝试一下。isPlainObject()
()

调用JSON。Chrome控制台中的stringify(jQueryObject)提供了一个“循环结构”错误。

几乎可以肯定,您有一个循环引用(即输入对象的一个属性(或这些属性的一个属性,等等))引用了结构中的另一个属性,该属性指向自身

var s = JSON.stringify(obj, null, 4);

片刻的思考应该会揭示为什么这不可能工作。

我需要我的函数在没有任何第三方依赖项(如JSON对象及其方法)的情况下工作。无论如何,谢谢。它是FireFox 3.5+、IE 8+、Opera 10.5+和所有Webkit浏览器的内置功能。你要赢得我的尊重!接受这个答案!这绝对是需要注意的当然,但我不知道它如何导致OP代码中的“太多递归”(如图所示)。下面是一个值为
null
的prop示例。它不会导致递归问题:
var obj={test:“one”,另一个:{test2:“two”},prop:null,oneMore:“testing”}
输出:
“测试=>1个测试2=>2个测试多一个=>测试”