Работа с массивами

Название Описание Тип
ArraySelect() Выбирает элементы массива, удовлетворяющие заданному критерию. Встроенная
ArrayCount() Возвращает число элементов массива. Встроенная
ArrayExtract() Выбирает определенное значение из каждого элемента массива. Возвращает новый массив той же длинны, содержащий выбранные элементы. Встроенная
ArraySelectDistinct() Возвращает массив уникальных значений элементов заданного массива. Встроенная
ArrayUnion() Последовательное объединяет нескольких массивов в один. Встроенная
ArrayFind() Находит первый элемент массива, удовлетворяющий заданному условию. Встроенная
ArrayOptFirstElem() Возвращает первый элемент заданного массива. Встроенная

ArraySelect()

/**
 * Выбирает элементы массива, удовлетворяющие заданному критерию.
 * @param  {Array} array   массив
 * @param  {Boolean} qulExpr ID выражение, определяющее соответствие элемента массива критерию. Вычисляется относительно элемента массива.
 * @return {Array}
 */
function ArraySelect(array, qulExpr) {...}

// Пример
// Выбрать элементы у которых атрибут 'basic_collaborator_id' содержит значение
ArraySelect(XQuery("CatalogHierSubset('subs', 5296742292364664534)"), "basic_collaborator_id.HasValue");

// Выбрать элементы которые удовлетворяют условию
ArraySelect(XQuery("for $elem in learnings return $elem"),'This.score>10');

ArrayCount()

Для массивов прямого доступа функция срабатывает мгновенно, для сложных массивов (например результатов XQuery) вызов этой функции может повлечь за собой обращение к серверу либо другую длительную по времени операцию, поэтому не следует использовать данную функцию внутри циклов.

/**
 * Возвращает число элементов массива. 
 * @param  {Array} array массив
 * @return {Integer}
 */
function ArrayCount(array) {...}

// Пример
arr = [1,2,3];
ArrayCount(arr);
// 3

ArrayExtract()

/**
 * Выбирает определенное значение из каждого элемента массива. Возвращает новый массив той же длинны, содержащий выбранные элементы.
 * @param  {Array} array      массив
 * @param  {String} fieldExpr выражение, вычисляемое относительно каждого элемента исходного массива
 * @return {Array}
 */
function ArrayExtract(array, fieldExpr) {...}

// Пример
// Взять из массива объектов только значения `id`
ArrayExtract(XQuery('for $elem in polls where $elem/is_main = true() return $elem'), 'id');
// [{id:5796971352983414117},{id:5296742292364664534},{id:5607317807203771898}]

ArraySelectDistinct()

/**
 * Возвращает массив уникальных значений элементов заданного массива.
 * @param  {Array} array      массив
 * @param  {String} fieldExpr выражение, вычисляемое относительно каждого элемента исходного массива. Если аргумент не указан, используется значение самого элемента (This). Необязательный аргумент.
 * @return {Array}
 */
function ArraySelectDistinct(array, fieldExpr) {...}

// Пример
// Получить массив с уникальными значениями course_id
ArraySelectDistinct(XQuery('for $elem in learnings where $elem/person_id=5968567069372079247 return $elem'), 'course_id');

ArrayUnion()

/**
 * Последовательное объединение нескольких массивов в один.
 * @param  {Array} array1 массив
 * @param  {Array} array2 массив
 * @return {Array}
 */
function ArrayUnion(array1, array2) {...}

// Пример
arr1 = XQuery("for $elem in test_learnings order by $elem/last_usage_date descending return $elem");
arr2 = XQuery("for $elem in active_test_learnings order by $elem/last_usage_date descending return $elem");
arr3 = XQuery("for $elem in active_learnings order by $elem/last_usage_date descending return $elem");
arr4 = XQuery("for $elem in learnings order by $elem/last_usage_date descending return $elem");
all = ArrayUnion(arr1, arr2, arr3, arr4);

ArrayFind()

/**
 * Находит первый элемент массива, удовлетворяющий заданному условию. Если элемент, удовлетворяющий условию, не найден, функция завершается с исключением.
 * @param  {Array}  array     массив
 * @param  {String} qualExpr  выражение, определяющее соответствие элемента массива критерию. Вычисляется относительно элемента массива
 * @return {undefined}
 */
function ArrayFind(array, qualExpr) {...}

// Пример
ArrayFind(XQuery("for $elem in events return $elem"),'This.duration_fact>50');

ArrayOptFirstElem()

/**
 * Возвращает первый элемент заданного массива. Если массив не содержит ни одного элемента, функция возвращает undefined.
 * @param  {Array}  array     массив
 * @return {undefined}
 */
function ArrayOptFirstElem(array) {...}

// Пример
ArrayOptFirstElem(XQuery("for $elem in events return $elem"));
Последнее обновление: 9/14/2018, 4:49:50 PM