Возврат нескольких значений из функции в JavaScript

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

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

Использование массива

Предположим, следующая getNames() извлекает имя и фамилию из базы данных в бэкенде или из результата вызова стороннего API и возвращает их как элементы массива:

function getNames() {
    // get names from the database or API 
    let firstName = 'John',
    lastName = 'Doe';
    // return as an array 
    return [firstName, lastName];
}

Ниже показано, как получить возвращаемое значение из функции getNames() :

let names = getNames();

Так как names переменная представляет собой массив, вы можете ссылаться на его элементы, используя квадратные скобки, например:

const firstName = names[0], 
lastName = names[1];

В ES6 вы можете использовать синтаксис присваивания деструктуризации для более интуитивной распаковки значений из массива, например:

const [firstName, lastName] = getNames();

В этом коде переменные firstName и lastName будут принимать первый и второй элементы возвращаемого массива.

С использованием объекта

Если вы хотите присвоить имя каждому возвращаемому значению, чтобы сделать его более читабельным и простым в обслуживании, вы можете использовать объект:

function getNames() {
    // get names from the database or API 
    let firstName = 'John',
    lastName = 'Doe';
    // return values 
    return {
        'firstName': firstName,
        'lastName': lastName
    };
}

Поскольку имена свойств совпадают с именами переменных, вы можете сократить их, используя расширения синтаксиса литерала объекта в ES6 следующим образом:

function getNames() {
    // get names from the database or API 
    let firstName = 'John',
    lastName = 'Doe';
    return {
        firstName,
        lastName
    };
}

И вы можете получить возвращаемое значение в виде объекта следующим образом:

let names = getNames(); 
let firstName = names.firstName, 
lastName = names.lastName;

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

let { firstName, lastName } = getNames();

Заключение

  • JavaScript не поддерживает функции, которые возвращают несколько значений. Однако вы можете обернуть несколько значений в массив или объект и вернуть массив или объект.
  • Используйте синтаксис деструктурирующего присваивания для распаковки значений из массива или свойств из объектов.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript