Как установить значение для всех элементов в массиве?
Например, у меня есть массив: ["chin","eng","maths"]
Я хочу установить его на {"chin" :true,"eng":true,"maths":true}
И подтолкнуть к пожару как ребенок.
2 ответа
Самый простой способ - пройти по массиву с помощью 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)
Одним из возможных подходов является использование 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}), {});
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.