Фрагмент для создания объекта из деструктурированного массива
Например, у меня был массив с тремя номерами:
var arr = [124, -50, 24];
и мне нужно преобразовать этот массив в объект:
{
x: 124,
y: -50,
z: 24
}
Я не хочу использовать для этого синтаксис "старого стиля", например:
{
x: arr[0],
y: arr[1],
z: arr[2]
}
поэтому на данный момент я использую этот синтаксис:
const [x, y, z] = [...arr];
const obj = {x, y, z};
Но есть ли способ сделать это с помощью прямого массива dectructuring для объекта без временных переменных?
Ответы
Ответ 1
Как уже упоминалось в комментарии, вы можете использовать выражение немедленного вызова функции (IIFE), чтобы создать объект за один шаг, но он менее читабелен, чем несколько шагов.
const arr = [124, -50, 24];
const obj = (([x, y, z]) => ({ x, y, z }))(arr);
console.log(obj);
Ответ 2
Просто используйте это
let obj = {...arr}
Ответ 3
Вы также можете сделать
const obj = {};
([obj.x, obj.y, obj.z] = arr);
чтобы избежать временных переменных, но я бы поставил под вопрос, улучшается ли это.