Незнакомый синтаксис в JS (Apps Script)

84
21 марта 2021, 07:20

Дан пример:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheets()[0];
var destination = ss.getSheets()[1];
var range = source.getRange("B2:D4");

Что обозначают квадратные скобки в конце второй и третьей строки(var source = ss.getSheets()[0];) ?

Answer 1

Функция всегда возвращает какое-то значение, если мы не делаем это руками, то функция автоматом возвращает undefined

function foo() {
}
const result = foo(); // undefined

Можно руками вернуть какое-то значение, например массив

function foo() {
  return [1, 2, 4];
}
const result = foo(); // [1, 2, 3]

Но что если нам нужен только первым элемент массива? Можно сделать так

function foo() {
  return [1, 2, 4];
}
const tempResult = foo(); // [1, 2, 3]
const result = tempResult[0];

А можно избавиться от лишней переменно, так как js позволяет работать с возвращаемым значением сразу же

function foo() {
  return [1, 2, 4];
}
const result = foo()[0]; // 1

Кстати, сейчас ваш вариант можно переписать по другому ( без доп вызова функции )

const ss = SpreadsheetApp.getActiveSpreadsheet();
const [source, destination] = ss.getSheets();
const range = source.getRange("B2:D4");

Как это работает можно почитать вот тут

READ ALSO
Помогите разобраться в работе слайдера

Помогите разобраться в работе слайдера

ниже представлена версия кода для работы слайдера на jQuery, к сожалению не могу понять строку

138
Обращение к свойству объекта a.field или a[field] [дубликат]

Обращение к свойству объекта a.field или a[field] [дубликат]

Ребят, не пойму в чем ошибкаЕсть задача на всем известном сайте для изучения JS по организации сортировки объектов в массиве через замыкания

83
Кастомизация select

Кастомизация select

Какой самый адекватный и нормальный способ кастомизации select без подключение сторонних библиотек?

80
Как определить, есть ли в сообщение “-”

Как определить, есть ли в сообщение “-”

Я создаю бота в дискорде, и хочу что бы он в сообщение проверял есть ли там "-", сколько бы я не пытался у меня не получается это сделать

89