jquery.each多维数组

daz*_*azz 11 jquery

var array1 = {};

array1['one'] = new Array();
array1['one']['data'] = 'some text';
array1['one']['two'] = new Array();
array1['one']['two']['three'] = new Array();
array1['one']['two']['three']['data'] = 'some other text';

$.each(array1, function(key1, value1){
    $.each(value1['two']['three'], function(key1, value1){
        document.write('test');
    }
});
Run Code Online (Sandbox Code Playgroud)

一切正常,除了它没有到达document.write.任何人都知道为什么?

Mar*_*iss 11

请注意,Array()替换是关键,缺少')'

var array1 = {};

array1['one'] = new Object();
array1['one']['data'] = 'some text';
array1['one']['two'] = new Object();
array1['one']['two']['three'] = new Object();
array1['one']['two']['three']['data'] = 'some other text';

$.each(array1, function(key1, value1) {
    $.each(value1['two']['three'], function(key1, value1) {
        document.write('test');
    });
});
Run Code Online (Sandbox Code Playgroud)

和写同样的东西的另一种方法:(写入引用你的对象的小tweek)

var array1 = {};

array1.one = new Object();
array1.one.data = 'some text';
array1.one.two = new Object();
array1.one.two.three = new Object();
array1.one.two.three.data = 'some other text';


$.each(array1, function(key1, value1) {
    $.each(value1['two']['three'], function(key1, value1) {
        document.write('test' + array1.one.data);
    });
});
Run Code Online (Sandbox Code Playgroud)

最后,使用已弃用的新Object()替换:

var array1 = {};

array1['one'] = {}
array1['one']['data'] = 'some text';
array1['one']['two'] = {};
array1['one']['two']['three'] = {};
array1['one']['two']['three']['data'] = 'some other text';

$.each(array1, function(key1, value1) {
    $.each(value1['two']['three'], function(key1, value1) {
        document.write('test');
    });
});
Run Code Online (Sandbox Code Playgroud)

编辑:你的数组很有趣,为什么你可能会在对象声明中拥有字符串:

var array1 = {}; 
var fun="four"; 
array1.one = {}; 
array1.one.data = 'some text'; 
array1.one.two = {}; 
array1.one.two.three = {}; 
array1.one.two.three.data = 'some other text'; 
array1.one.two[fun] = {};
array1.one.two[fun].data=' howdy';

$.each(array1, function(key1, value1) { 
    $.each(value1.two.three, function(key1, value1) { 
        document.write('test'+array1.one.two[fun].data+ ":"+key1+":"+value1); 
    }); 
});
Run Code Online (Sandbox Code Playgroud)

最后的输出是:"测试你好:数据:其他一些文字"