Пример квадратных скобок - PullRequest
0 голосов
/ 17 апреля 2019

Я прочитал этот пост Использование [квадратных скобок] вокруг переменных JavaScript , но я не совсем понял, зачем его использовать. Вот код, который я пытаюсь понять:

let [translations] = await translate.translate(text, target);
translations = Array.isArray(translations) ? translations : [translations];

translations.forEach((translation, i) => {
    console.log(`${text[i]} => (${target}) ${translation}`);

Не могли бы вы объяснить, почему скобки в первой строке и почему оператор if во второй строке?

1 Ответ

1 голос
/ 17 апреля 2019
let [translations] = await translate.translate(text, target);

Функция translate.translate возвращает (обернутое обещание) массив. Выше эквивалентен

let translationsArray = await translate.translate(text, target);
let foo = translationsArray[0];

Теперь вторая строка:

translations = Array.isArray(translations) ? translations : [translations];

гласит: «если translations уже массив, ничего с ним не делать, если нет, сделать из него массив из 1 элемента». Итак, на данный момент: ["cat", "dog"] остается неизменным, но "cat" становится ["cat"].

...