Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   создание объекта из 2х массивов с данными (https://javascript.ru/forum/misc/40849-sozdanie-obekta-iz-2kh-massivov-s-dannymi.html)

Cache 21.08.2013 22:11

создание объекта из 2х массивов с данными
 
хочу создать из 2х массивов объект вида:
obj = {x: {n: {'param1': y, 'param2': z}}}

где x - название берется из значений массива путем перебора
n - номер от 0 и более
y и z - переменные 1 и 2 из второго массива

подскажите, как это сделать правильно
первая же ошибка возникает при попытке передать имя (x) из массива напрямую
obj.arr1['номер_параметра'] = ...

ksa 22.08.2013 09:15

Цитата:

Сообщение от Cache
из 2х массивов вида:
obj = {x: {n: {'param1': y, 'param2': z}}}

Это не массив...

Riim 22.08.2013 14:26

Цитата:

Сообщение от ksa
Это не массив...

ассоциативный массив ;)

Cache 22.08.2013 14:39

Цитата:

Сообщение от ksa (Сообщение 268726)
Это не массив...

имелось ввиду что это структура объекта, которую нужно создать из 2х массивов
сорри, если не совсем корректно написал вопрос

ksa 22.08.2013 16:46

Цитата:

Сообщение от Cache
это структура объекта, которую нужно создать из 2х массивов

Тогда где те массивы?

ksa 22.08.2013 16:47

Цитата:

Сообщение от Riim
ассоциативный массив

Это как "Государь" и "милостивый государь"... :D

Cache 24.08.2013 00:12

Цитата:

Сообщение от ksa (Сообщение 268803)
Тогда где те массивы?

первый массив
a = ('abc','cde',...);
второй массив
b = ('value1','value2')
второй массив имеет только 2 параметра, но для каждого элемента массива "a" параметры в массиве "b" будут разными и для одного элемента массива "a", массивов "b" - может быть "n" штук
как-то так

т.е. получить нужно что-то типа
obj = {
abc: {
0: {'param1': 'value1', 'param2': 'value2'},
1: {'param1': 'value1_1', 'param2': 'value2_2'},
...
n: {'param1': 'value1_n', 'param2': 'value2_n'}
},
cde: {
0: {'param1': 'value1_cde', 'param2': 'value2_cde'},
}
};

ksa 24.08.2013 11:23

Цитата:

Сообщение от Cache
второй массив имеет только 2 параметра

Может таки два элемента?

Цитата:

Сообщение от Cache
первый массив
a = ('abc','cde',...);
второй массив
b = ('value1','value2')
...
но для каждого элемента массива "a" параметры в массиве "b" будут разными и для одного элемента массива "a", массивов "b" - может быть "n" штук

Так сколько у тебя массивов? :D
Явно не два!

Cache 25.08.2013 17:41

Цитата:

Сообщение от ksa (Сообщение 268803)
Тогда где те массивы?

Цитата:

Сообщение от ksa (Сообщение 269035)
Может таки два элемента?


Так сколько у тебя массивов? :D
Явно не два!


массива два, просто второй временный и при переборе в цикле получает значения из других элементов цикла, в итоге, данных может быть сколько угодно, в зависимости от поставленной задачи, но общая структура именно такая

ksa 25.08.2013 19:20

Цитата:

Сообщение от Cache
данных может быть сколько угодно, в зависимости от поставленной задачи, но общая структура именно такая

Странное у тебя понятие о структурах... :D

Cache 29.08.2013 04:54

Цитата:

Сообщение от ksa (Сообщение 269254)
Странное у тебя понятие о структурах... :D

Так вы можете объяснить, как это сделать?

ksa 29.08.2013 08:23

Как можно что-то делать если автор даже не может показать какими данными придется оперировать и что в итоге из них нужно сделать... :D

Причем забесплатно!

bes 29.08.2013 20:21

примерно в этом духе хочешь ты сделать?
var mas1 = ['a1', 'b1'];
var mas2 = ['a2', 'b2'];
var obj = {};
for (var i = 0, len = mas1.length; i < len; i++) {
	obj[mas1[i]] = mas2[i];
}
console.log(obj);

Cache 01.09.2013 00:11

да, только структура будет несколько иной (такой как в 1м посте)
т.е.:
obj = {x: {n: {'param1': y, 'param2': z}}}


если б это был ассоциативный массив - сделал бы приблизительно так:
var mas1 = ['a1', 'b1'];

var mas2[0] = ['a2', 'b2'];
var mas2[1] = ['a21', 'b21'];
var mas2[2] = ['a211', 'b211']; 

for (key in mas1) {
for (i=0; i<mas2.length; i++) {
obj[key][i]['param'+i] = mas2[i];
}
}

но как подобным образом сделать объект - непонятно

Cache 01.09.2013 00:24

Цитата:

Сообщение от ksa (Сообщение 269837)
Как можно что-то делать если автор даже не может показать какими данными придется оперировать и что в итоге из них нужно сделать... :D

какая разница какие данные? текстовые данные, структура данных здесь роли не играет, вопрос был иной как создать объект из массивов, а не напишите мне полностью цикл создания объекта
obj = {x: {n: {'param1': y, 'param2': z}}}

проблема при создании данного объекта в создании, к примеру, элемента "х", если я пытаюсь его создать как-то так:
var obj = new Object;
...
obj.mas1[0] = ...;



хочешь денег за ответ на простейший вопрос? так ты бы сразу написал - дай денег... я б на тебя неделю не тратил бы...

если бы тут было подробнее описано о работе с объектами, так и вопрос бы не возник вовсе


Часовой пояс GMT +3, время: 04:52.