Замена двух переменных с помощью назначения деструктурирования не работает с методом 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()возможно?

0 ответов

Другие вопросы по тегам