Вход

Просмотр полной версии : создание объекта из 2х массивов с данными


Cache
21.08.2013, 22:11
хочу создать из 2х массивов объект вида:
obj = {x: {n: {'param1': y, 'param2': z}}}
где x - название берется из значений массива путем перебора
n - номер от 0 и более
y и z - переменные 1 и 2 из второго массива

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

ksa
22.08.2013, 09:15
из 2х массивов вида:
obj = {x: {n: {'param1': y, 'param2': z}}}
Это не массив...

Riim
22.08.2013, 14:26
Это не массив...
ассоциативный массив ;)

Cache
22.08.2013, 14:39
Это не массив...

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

ksa
22.08.2013, 16:46
это структура объекта, которую нужно создать из 2х массивов
Тогда где те массивы?

ksa
22.08.2013, 16:47
ассоциативный массив
Это как "Государь" и "милостивый государь"... :D

Cache
24.08.2013, 00:12
Тогда где те массивы?

первый массив
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
второй массив имеет только 2 параметра
Может таки два элемента?

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

Cache
25.08.2013, 17:41
Тогда где те массивы?

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


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


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

ksa
25.08.2013, 19:20
данных может быть сколько угодно, в зависимости от поставленной задачи, но общая структура именно такая
Странное у тебя понятие о структурах... :D

Cache
29.08.2013, 04:54
Странное у тебя понятие о структурах... :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
Как можно что-то делать если автор даже не может показать какими данными придется оперировать и что в итоге из них нужно сделать... :D
какая разница какие данные? текстовые данные, структура данных здесь роли не играет, вопрос был иной как создать объект из массивов, а не напишите мне полностью цикл создания объекта
obj = {x: {n: {'param1': y, 'param2': z}}}

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


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

если бы тут (http://javascript.ru/tutorial/object/intro) было подробнее описано о работе с объектами, так и вопрос бы не возник вовсе