Замена двух переменных с помощью назначения деструктурирования не работает с методом ES2022 at() в JavaScript?
Поэтому я хотел поменять местами первый и последний элементы массива с назначением деструктурирования. Я попытался использовать метод ES2022 для получения значений индексов:
const array = ['a, 'i', 'r'];
[array.at(0), array.at(-1)] = [array.at(-1), array.at(0)];
Но когда я запускаю это, SyntaxError выводится на консоль:
[array.at(0), array.at(-1)] = [array.at(-1), array.at(0)];
^^^^^^^^^^^
SyntaxError: Invalid destructuring assignment target
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1088:15)
at Module._compile (node:internal/modules/cjs/loader:1123:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
Затем я изменил методы на классическиеarray[]
и теперь подкачка работает корректно без ошибок:
[array[0], array[array.length - 1]] = [array[array.length - 1], array[0]];
console.log(array); // ['r', 'i', 'a']
Может ли кто-нибудь сказать мне, в чем проблема с заменой с назначением деструктурирования с использованиемarray.at()
возможно?