Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2017, 14:02
Новичок на форуме
Отправить личное сообщение для winzza Посмотреть профиль Найти все сообщения от winzza
 
Регистрация: 04.09.2017
Сообщений: 1

Создать объект с ключами из значений другого объекта
Здравствуйте. Подскажите пожалуйста как мне создать объект с ключами из значений другого объекта?
Сейчас создаю так:
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'
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2017, 14:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от winzza Посмотреть сообщение
Подскажите можно ли создать объект actionByTypeButton примерно так:
var typeButton = {
            'type1': 1,
            'type2': 2,
            'type3': 3
        },

        actionByTypeButton = [
            typeButton['type1'] = 'aaa',
            typeButton['type2'] = 'bbb',
            typeButton['type3'] = 'ccc'
        ];
Начнем с того, что тут actionByTypeButton вроде как массивом собрался стать... Не объектом...

И вот эта вот "конструкция"
Сообщение от winzza Посмотреть сообщение
actionByTypeButton = [
*!*
            typeButton['type1'] = 'aaa',
            typeButton['type2'] = 'bbb',
            typeButton['type3'] = 'ccc'
*/!*
        ];
Вообще капец...
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2017, 14:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от winzza
но переприсваевает typeButton
Как вариант...

var typeButton = {
	'type1': 1,
	'type2': 2,
	'type3': 3
};
var actionByTypeButton = [];
actionByTypeButton[typeButton['type1']] = 'aaa';
actionByTypeButton[typeButton['type2']] = 'bbb';
actionByTypeButton[typeButton['type3']] = 'ccc';
alert(actionByTypeButton);

Но массив получается без нулевого элемента...
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2017, 15:24
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от winzza
Подскажите пожалуйста как мне создать объект с ключами из значений другого объекта?
Рассмотрим объектный литерал - его составляющие
{
  "ключ": "значение"
}

Если отвечать конкретно на вопрос. То получится такой объект -
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));

Функция создающая новый объект с ключами объекта прототипа и со значениями из аргумента в виде массива.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать объект со своими условиями if jtag Общие вопросы Javascript 4 21.02.2016 13:12
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
создание объект, ключ которого - значение элемента другого объекта cmygeHm Общие вопросы Javascript 2 30.05.2011 12:57
Создать объект из строчек Hagrael Events/DOM/Window 16 09.07.2010 10:25
Объект как свойство объекта Cooskon Общие вопросы Javascript 6 16.02.2010 21:41