Создать объект с ключами из значений другого объекта
Здравствуйте. Подскажите пожалуйста как мне создать объект с ключами из значений другого объекта?
Сейчас создаю так:
var typeButton = {
'type1': 1,
'type2': 2,
'type3': 3
},
actionByTypeButton = {};
actionByTypeButton[typeButton['type1']] = 'aaa';
actionByTypeButton[typeButton['type2']] = 'bbb';
actionByTypeButton[typeButton['type3']] = 'ccc';
Подскажите можно ли создать объект actionByTypeButton примерно так:
var typeButton = {
'type1': 1,
'type2': 2,
'type3': 3
},
actionByTypeButton = [
typeButton['type1'] = 'aaa',
typeButton['type2'] = 'bbb',
typeButton['type3'] = 'ccc'
];
Так работает, но переприсваевает typeButton. К примеру если вызвать: console.log(typeButton['type1']); // 'aaa' |
Цитата:
И вот эта вот "конструкция" Цитата:
|
Цитата:
var typeButton = {
'type1': 1,
'type2': 2,
'type3': 3
};
var actionByTypeButton = [];
actionByTypeButton[typeButton['type1']] = 'aaa';
actionByTypeButton[typeButton['type2']] = 'bbb';
actionByTypeButton[typeButton['type3']] = 'ccc';
alert(actionByTypeButton);
Но массив получается без нулевого элемента... :( |
Цитата:
{
"ключ": "значение"
}
Если отвечать конкретно на вопрос. То получится такой объект -
var actionByTypeButton = {
'1': '',
'2': '',
'3': ''
}
Объект с ключами из значений другого объекта. Но, я так понимаю нужно получить ключи объекта typeButton, а не их значения.
var copyKeys = function(p, v) {
var keys = Object.keys(p);
var o = {};
keys.forEach(function(k, i) {
o[k] = v[i];
});
return o;
};
var o = copyKeys(
{'type1': 1,'type2': 2,'type3': 3},
['aaa', 'bbb', 'ccc']
);
alert(JSON.stringify(o));
Функция создающая новый объект с ключами объекта прототипа и со значениями из аргумента в виде массива. |
| Часовой пояс GMT +3, время: 08:24. |