Справочник DemonScript: Структуры данных
Массивы
- X.size() - число элементов в массиве
- X.clear() - удалить все элементы из массива
- X.empty() - возвращает True, если элементов нет, иначе False
- X.copy() - вернуть копию массив в другой памяти (клонирование)
- X.push(X,Y,...) - добавляет в конец массива элементы X,Y,...
- X.pop() - возвращает последний элемент и удаляет его из массива
- X.shift() - возвращает первый элемент и удаляет его из массива
- X.unshift(X,Y,...) - добавляет элементы в начало массива
- X.splice(start, deleteCount) - удаляет deleteCount существующих элементов начиная с позиции start. Если start больше длины массива, реальный индекс будет установлен на длину массива. Если start отрицателен, то start будет указывать на индекс элемента с конца. Если deleteCount равен 0, элементы не удаляются.Если deleteCount больше количества элементов, оставшихся в массиве, начиная с индекса start, либо отсутствует, то будут удалены все элементы до конца массива. Функция возвращает массив удаленных элементов.
- X.is(X) - возвращает True, если элемент X есть в массиве
- X.find(X) - ищет элемент X и возвращает его индекс (с нуля); если элемента нет - возвращает -1
- X.mix() - случайно перемешивает элементы массива
- X.sort(compareExpr) - сортирует массив в порядке возрастания. При указании лямбда-выражения compareExpr сортирует в звависимости от результата сравнения аргументов a и b. Если меньше нуля, то считается что a меньше b. Если больше нуля, то считается что a больше b.
var a = [3,1,2] a.sort() // [1,2,3] var b = [{"v":3},{"v":1},{"v":2}] b.sort((a,b) => a["v"] - b["v"]) // [{v:1},{v:2},{v:3}] b.sort((a,b) => b["v"] - a["v"]) // [{v:3},{v:2},{v:1}]
- X[] - доступ к элементам массива по индексу (разрешен доступ к вложенным массивам X[][]...)
- Возможна инициализацаия массива значениями при объявлении
var array = ["name",2.0,[1,2,3]] - Возможен перебор массива по значениям
for val in array
и по паре индекс-значение
for index,val in array
Строки
- X.split(regexp, num) - разделить строку с использованием регулярного выражения regexp, вернуть первых num подстрок. Если второй параметр не задан - вернуть все подстроки.
- X.indexOf(substr, offset) - вернуть индекс первого вхождения подстроки substr в строку, начав поиск с offset
- X.trim() - удалить символы пробела, табуляции, перевода каретки в начале и конце строки
- X.length() - вернуть длину строки
- X.substr(start, cnt) - вернуть подстроку длиной cnt начиная со start
- X.substring(start, end) - вернуть подстроку начиная со start и заканчивая end (не включительно)
- X.replace(a, b[, num]) - вернуть строку, в которой заменили вхождения подстроки a на b не более num раз. num == -1 - заменить все вхождения
- X.replaceRegexp(regex, b) - вернуть строку, в которой заменили все соответствия regex на b (в b можно использовать само соответствие в виде $&)
- X.repeat(n) - вернуть строку повторенную n раз
- X.include(a) - вернуть True, если строка включает подстроку a. Иначе - False
- X.startsWith(a) - вернуть True, если строка начинается с подстроки a. Иначе - False
- X.endsWith(a) - вернуть True, если строка начинается с подстроки a. Иначе - False
- X.search(regexp) - вернуть индекс первого соответствия регулярному выражению regexp в строке. -1, если соответствий нет.
- X[] - доступ к символам строки по индексу. Разрешены отрицательные индексы -1 - последний символ и т.д.)
Хэш таблицы (Map)
- X.size() - число элементов в таблице
- X.clear() - удалить все элементы из таблицы
- X.empty() - возвращает True, если элементов нет, иначе False
- X.copy() - вернуть копию таблицы в другой памяти (клонирование)
- X.is(X) - возвращает True, если элемент X есть в таблице
- X.find(X) - ищет элемент X и возвращает его ключ; если элемента нет - возвращает none
- X[] - доступ к элементам таблицы по ключу (разрешен доступ к вложенным массивам или хэштаблицам X[][]...)
- Возможна инициализацаия таблицы значениями при объявлении
var map = {"name":"Masha","age":7} - Возможен перебор таблицы по ключам
for key in map
и по паре ключ-значение
for key,val in map