В программировании может возникнуть случай, когда временные переменные используются, например, в алгоритмах сортировки, которые обычно преподаются в учебных программах по информатике (или используются на собеседованиях по программированию).

В следующем примере «пузырьковой сортировки» мы видим временную переменную (temp), используемую для хранения «inputArr[j]»:

let bubbleSort = (inputArr) => {
let len = inputArr.length;
  for (let i = 0; i < len; i++) {
    for (let j = 0; j < len; j++) {
      if (inputArr[j] > inputArr[j + 1]) {
        let temp = inputArr[j];
        inputArr[j] = inputArr[j + 1];
        inputArr[j + 1] = temp; 
      }
    }
  } 
return inputArr; 
};

С появлением ES6 (ECMAScript 6; 2015 г.); JavaScript представил синтаксис деструктурирующего присваивания.

Используя вышеупомянутое, мы можем устранить необходимость создания временной переменной и сократить три строки кода до одной.

Что выглядит так:

let bubbleSort = (inputArr) => {
let len = inputArr.length;
  for (let i = 0; i < len; i++) {
    for (let j = 0; j < len; j++) {
      if (inputArr[j] > inputArr[j + 1]) {
        [inputArr[j], inputArr[j + 1]] = [inputArr[j + 1], inputArr[j]];
      }
    }
  } 
return inputArr; 
};

В коде моей библиотеки table sorting; Я использую эту функцию совсем немного!

Например, при сортировке дат в различных форматах, таких как день/месяц/год (наиболее распространенный) и месяц/день/год в американском стиле и, наконец, в стандартном формате ISO 8601 год/месяц/день.

Как вы можете видеть в следующем отрывке; Я переупорядочиваю массивы, используя деструктурирование на основе используемого формата дат:

if (datesFormat === "mdy" || datesFormat === "dmy") {
  datesRegex = /^(\d\d?)[./-](\d\d?)[./-]((\d\d)?\d\d)/;
} else if (datesFormat === "ymd") {
  datesRegex = /^(\d\d\d\d)[./-](\d\d?)[./-](\d\d?)/;
}
let [years, days, months] = [0, 0, 0];
let numberToSort = columnOfTd;
if (regPos1 && regPos2 && regPos3) {
  if (datesFormat === "mdy") {
    [months, days, years] = [regPos1, regPos2, regPos3];
  } else if (datesFormat === "ymd") {
    [years, months, days] = [regPos1, regPos2, regPos3];
  } else {
    [days, months, years] = [regPos1, regPos2, regPos3];
  }
}
numberToSort = Number(
      years +
        String(months).padStart(2, "0") +
        String(days).padStart(2, "0")
    );
  }
column.toBeSorted.push(`${numberToSort}#${i}`);

Если у вас есть вопросы; не стесняйтесь оставить комментарий ниже.