Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
27 Апр 2023
2 мин
1753

Возвращение нескольких значений в JavaScript

При разработке на JavaScript иногда возникает необходимость вернуть из функции сразу несколько значений. Возьмем простой пример: В данном случае, кажется,

При разработке на JavaScript иногда возникает необходимость вернуть из функции сразу несколько значений. Возьмем простой пример:

function calculate() {
  var sum = 1 + 2;
  var diff = 2 - 1;
  return sum, diff;
}

В данном случае, кажется, что функция должна вернуть два значения: результат сложения и разности. Однако, на самом деле, это не так.

В JavaScript функция может вернуть только одно значение. Если вы попробуете использовать вышеприведенный код, то увидите, что функция calculate возвращает только значение diff, игнорируя значение sum. Это происходит из-за того, что оператор , в языке JavaScript возвращает последнее значение.

Чтобы вернуть из функции несколько значений, необходимо использовать другие подходы. В JavaScript для этого есть несколько способов.

Возвращение значений в виде массива

Один из наиболее простых и удобных способов — вернуть значения в виде массива.

function calculate() {
  var sum = 1 + 2;
  var diff = 2 - 1;
  return [sum, diff];
}

Теперь при вызове функции calculate вернется массив, первым элементом которого будет sum, а вторым — diff.

Возвращение значений в виде объекта

Если необходимо вернуть из функции несколько значений, которые имеют разный смысл, то удобно использовать объекты.

function calculate() {
  var sum = 1 + 2;
  var diff = 2 - 1;
  return {
    sum: sum,
    difference: diff
  };
}

При вызове функции calculate будет возвращен объект, полями которого будут sum и difference. Этот способ полезен тем, что позволяет явно обозначить, что означает каждое из возвращаемых значений.

Выбор использования массива или объекта зависит от конкретной ситуации, и в большинстве случаев любой из этих подходов позволит решить задачу.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий