Поиск местоположения элементов

Две самые распространенные операции при работе с массивами включают в себя определение индекса элемента, причем обе они, по сути, проверяют наличие элемента в массиве. Библиотека Base упрощает поиск двумя функциями с говорящими именами: dojo.indexOf и dojo.lastIndexOf. Каждая из этих функций возвращает целое число, представляющее собой индекс элемента в массиве, если он существует. Если заданный элемент в массиве отсутствует, функции возвращают значение -1. В сигнатурах этих функций имеется дополнительный параметр, определяющий начальный или конечный индекс, откуда следует начинать поиск. Обе функции имеют одинаковые сигнатуры:
dojo.indexOf(/*Array*/ array, /*Any*/ value, /*Integer?*/ fromIndex)
//возвращает Integer
dojo.lastIndexOf(/*Array*/ array, /*Any*/ value, /*Integer?*/ fromIndex)
//возвращает Integer


Следующий фрагмент программного кода иллюстрирует некоторые основные приемы использования этих методов:
var foo = [1,2,3];
var bar = [4,5,6,5,6];
var baz = [1,2,3];
dojo.indexOf([foo, bar], baz); // -1
dojo.indexOf(foo, 3); // 2
dojo.indexOf(bar, 6, 2); // 2
dojo.indexOf(bar, 6, 3); // 4
dojo.lastIndexOf(bar, 6); // 4


Кроме того, следует отметить, что эти методы выполняют поверхностное сравнение. Для таких сложных структур данных, как Array, это означает, что сравниваются ссылки на объекты. Следующий фрагмент поясняет это утверждение на конкретном примере:
bop = [4,5,6,5,6, foo]; // bop содержит вложенный массив
dojo.indexOf(bop, foo); //5, потому что (ссылка на) foo содержится в bop
dojo.indexOf(bop, [1,2,3]); //-1, потому что foo - это не тот же самый объект
//что и [1,2,3]
Теги:
утилиты
Добавлено: 24 Июля 2018 08:26:36 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...