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');
}
});
все работает, кроме того, что оно не попадает в document.write. У кого-нибудь есть идея, почему?
Обратите внимание, что замена 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');
});
});
и другим способом записать то же самое: (небольшая настройка записи для ссылки на ваш объект)
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);
});
});
И, наконец, с устаревшая замена new 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');
});
});
РЕДАКТИРОВАТЬ: немного поразвлечься с вашим массивом, и почему у вас МОГУТ быть строки в объявлении объекта в таком виде:
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);
});
});
последний вывод: "test howdy: data: какой-то другой текст "
Документ.write не работает, так как у вас есть синтаксическая ошибка, поэтому поток кода никогда не доберется до него - вам нужна еще одна скобка в конце вашего каждого
, т.е.
$.each(array1, function(key1, value1){
$.each(value1['two']['three'], function(key1, value1){
document.write('test');
})
});
Если вы собираетесь выполнять какую-либо нетривиальную работу с javascript, я настоятельно рекомендую вам использовать Firefox с установленным Firebug — консоль выделяет такие ошибки, вы верите, что все работает нормально.