|
|
|
| Добрый день,
столкнулся с проблемой при создании многомерного массива в javascript.
В PHP есть возможность создать массив вида:
array(
key_name1 => array(
key1 : value1,
key2 : value2
),
key_name2 => array(
key3 : value5,
key4 : value6
)
)
|
все ключи и значения динамические.
Возможно ли создать подобный массив в javascript? | |
|
|
|
|
|
|
|
для: ZetRider
(07.01.2014 в 11:44)
| | Нет в JS ассоциативных массивов ни многомерных ни маломерных, есть объекты. Но можно создать так называемые параллельные массивы (реляционные), в которых элементы с одинаковыми индексами содержат связанную информацию. | |
|
|
|
|
|
|
|
для: confirm
(07.01.2014 в 12:48)
| | Спасибо, разобрался. Создал объект вида:
obj {
1 : {
k : v
k : v
k : v
}
}
|
как оказалось, для передачи динамического названия свойства нужно заключить переменную в квадратные скобки [] | |
|
|
|
|
|
|
|
для: ZetRider
(07.01.2014 в 13:37)
| | Такого объекта быть не может, как и не может быть в РНР key : val, и не знаю что за динамические свойства и обязательность для них квадратных скобок. | |
|
|
|
|
|
|
|
для: confirm
(07.01.2014 в 13:51)
| | хм.. странно тогда, что работает как хотелось бы. Возможно я допустил ошибку?
названия свойств является ID которое может быть всегда разным. По своему назвал это - динамическое название свойства.
пример кода:
my_data = {};
my_data_field = {};
$.fn.demoFN = function()
{
$(this).each(function()
{
var parent_id = $(this).data('parent');
var this_id = $(this).data('id');
var this_val = $(this).data('val');
my_data[parent_id] = {};
my_data_field[this_id] = this_val;
});
my_data[parent_id] = my_data_field;
console.log(my_data);
/*
получаю:
obj {
1 : {
k : v
k : v
k : v
}
}
*/
}
$('.field').demoFN();
|
| |
|
|
|
|
|
|
|
для: ZetRider
(07.01.2014 в 14:14)
| | Я имел ввиду, что сама запись должна быть:
obj = {
1 : {
a : v,
b : v,
c : v
}
}
|
попробуй пойми что вы выставляете. И что вообще вы пытаетесь впихнуть в объект, элементы формы? | |
|
|
|
|
|
|
|
для: confirm
(07.01.2014 в 14:24)
| | да, не верно написал вид объекта, спасибо, буду знать как верно его отображать.
Что и зачем:
Берем ID формы, их может быть несколько
У каждой формы есть поля, у поля есть ID и значение
Для дальнейшей работы со значениями полей решил поместить все в 1 объект разделяя их по номеру формы и id поля. Дабы в дальнейшем просто обращаться к нужному значению в объекте, а не таскать за собой лишний код для получения значений. | |
|
|
|
|
|
|
|
для: ZetRider
(07.01.2014 в 14:32)
| | У каждой поля формы есть имя, а в jQuery есть два метода получения полей формы для последующего применения: .serialize() - преобразует форму в строку для URL, и .serializeArray() - преобразует форму в объект. | |
|
|
|
|
|
|
|
для: confirm
(07.01.2014 в 14:45)
| | к сожалению serialize в моем случаи не подходит. Спасибо | |
|
|
|