Как установить значение для всех объектов в массиве для JavaScript? - PullRequest
0 голосов
/ 29 мая 2019

Как установить значение для всех элементов в массиве?

Например, у меня есть массив: ["chin","eng","maths"]

Я хочу установить его на {"chin" :true,"eng":true,"maths":true}

И подтолкнуть к основанию огня, как ребенок.

enter image description here

Ответы [ 2 ]

4 голосов
/ 29 мая 2019

Один из возможных подходов - использовать Array.reduce () , например:

const input = ["chin", "eng", "maths"];

let obj = input.reduce((acc, item) => (acc[item] = true, acc), {});

console.log(obj);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

Или, вы можете пойти с spreading, но с небольшими накладными расходами на производительность:

let obj = input.reduce((acc, item) => ({...acc, [item]: true}), {});
1 голос
/ 29 мая 2019

Самый простой способ - циклически перебрать массив с помощью for...of и добавить каждый ключ к объекту:

const keys = ["chin", "eng", "maths"],
      output = {};

for (const key of keys) {
  output[key] = true;
}

console.log(output)

Другой вариант - создать двумерный массив записей пары ключ-значение, используя map.Затем используйте Object.fromEntries() для создания объекта

const keys = ["chin","eng","maths"]
const output = Object.fromEntries(keys.map(k => [k, true]))

console.log(output)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...