При таком подходе вы можете получить требуемый результат.
let directions = {
"vertical": [
"down",
"up",
],
"horizontal": [
"left",
"right",
],
};
let res = {};
Object.values(directions).forEach(([a,b]) => {
res = {...res, [a]: b, [b]: a};
});
console.log(res);
.as-console-wrapper {
min-height: 100% !important;
}
Обновление
Вы можете получить тот же результат, используя reduce()
.
reduce()
Метод выполняет функцию редуктора (которую вы предоставляете) для каждого элемента массива, в результате чего получается одно выходное значение.
let directions = {
"vertical": [
"down",
"up",
],
"horizontal": [
"left",
"right",
],
};
let res = Object.values(directions).reduce((acc, [a, b]) => {
return {...acc, [a]: b, [b]: a}
}, {});
console.log(res);
.as-console-wrapper {
min-height: 100% !important;
}