@ooby

Как создать объект с идентичными свойствами?

Есть массив идентичных свойств: var key = ['key', 'key', 'key'];
и есть массив значений: var val = ['val1', 'val2', 'val3'];
Как из них сделать объект с идентичными свойствами вроде этого: { 'key': 'val1', 'key': 'val2', 'key': 'val3' }?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
@ooby Автор вопроса
В общем, как выяснил, в JS выражение вида { 'key': 'val1', 'key': 'val2', 'key': 'val3' } само по себе тождественно { 'key': 'val3' } Потому как интерпретатор проходит по всему выражению и по ключу видит указатель на область памяти только с 'val3' Как оказалось, исходное выражение является вполне корректным, но не оптимальным.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Negwereth
@Negwereth
lvivcss.com.ua
var keys = ['key1', 'key2', 'key3'];
var values = ['val1', 'val2', 'val3'];

let object = keys.reduce((object, key, index) => Object.assign(object, {[key]: values[index]}), {});
Ответ написан
Комментировать
drugoi
@drugoi
Front-end Developer
В объекте ключи всегда уникальные, не получится сделать несколько ключей key.
Если же ключи будут разные, то можно так:
var keys = ['key1', 'key2', 'key3'];
var values = ['val1', 'val2', 'val3'];
var keyValObj = {};
key.forEach(function(item, index) {
  keyValObj[item] = values[index];
});
console.log(keyValObj);
Ответ написан
Комментировать
freecoder-ru
@freecoder-ru
Зачем вам такое чудо ? О каких свойствах речь ? Идентичные свойства ? У вас Key : Value .
obj = {
"key1":"val1",
"key2":"val2",
"key3":"val3"
}

{ 'key': 'val1', 'key': 'val2', 'key': 'val3' } // Ваш пример .. Как вы доберётесь до нужного если надо будет достать по ключу ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы