да, вы можете использовать строковые литералы в качестве ключа.Но дело в том, что они рассчитываются во время выполнения.Поэтому вы должны относиться к ним как к выражениям.И чтобы переменные / выражения были вашими ключами, вам нужно обернуть их внутри []
let a = {
`key`: value
} // is not allowed
let a = {
[`key`]: value
} // is allowed since you have wrapp
для вашего дела
return {[`${array[0]}`]: array[array.length-1]};
Теперь, когда вы завернули элемент array[0]
внутристроковый литерал, вы получите строковые значения для вашего нулевого элемента.Если ваш array[0]
будет объектом, это тоже не сработает.Это должна быть либо строка, либо число.В противном случае вы получите "[object Object]"
в качестве ключа