![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| artuska |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
В ПХП есть хорошая функция, которая проверяет, есть ли в заданном массиве искомое значение. А в JS такая есть?
|
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
нет. Есть множество вариантов реализаций -> google -> JavaScript in_array
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| artuska |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
Ну, во-первых, не множество, а всего несколько — в основном это циклы того или иного вида и перебор этих циклов плюс сравнение и ретурн тру или фолс. Просто я думал что будет какая-нить функция, ибо перебор циклом массива это дерьмовый вариант. Ну, ничего не поделаешь, буду делать перебором.
Добавлено через 2 минуты и 30 секунд Ну да, по первой же ссылке в Гугле выдали мне перебор циклом — http://forum.de.selfhtml.org/archiv/2004/3/t76079/ Добавлено через 14 минут и 51 секунду Вообщем, тема может быть закрытой. Всем спасибо. |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
artuska, хотелось сказать - "можно подумать, что в пхп не перебором внутренняя функция сделана =)", но на самом деле - алгоритмов поиска тоже не мало - перебор - самый медленный (есть в два (например, бинарный поиск) и более раза быстрее - поищите).
|
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
dsCode, только для применения быстрых массив прийдется предваритльно отсортировать, что тоже время.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| cruelangel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
||||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
cruelangel, Gecko 1.8b2 and later и только. В opera и ie нет такого.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
да и более того - внутри - опять же - перебор циклом, так что - разницы нет.
|
|||
|
||||
| cruelangel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
> Gecko 1.8b2 and later и только. В opera и ie нет такого.
ну так добавь. > да и более того - внутри - опять же - перебор циклом, так что - разницы нет. в исходники мозиллы посмотрел, да? |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
cruelangel, я уж как-то добавлю, но вы даете ссылку на мануал, в котором говорится что эта функция уже есть и ничего реализовывать не нужно, а потом будет гора вопросов "почему не работает in_array".
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| egao |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 6.8.2007 Репутация: -1 Всего: нет |
у тебя браузер страницу не до конца загрузил?
|
|||
|
||||
| artuska |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
Не, я тоже уверен, что ядро ПХП'шной функции in_array() реализовано перебором массива. Перебор массива я могу и в ПХП и в ЯваСкрипте написать без проблем, но меня просто интересовала уже какая-нить готовая встроенная в язык функция. Чтобы не паритсья. Спасибо, что напомнили про бинарный поиск. Я хоть почитал про него, вспомнил курс техникума ))) Но у меня ситуация немного другая. У меня массив не упорядочен (но это не проблема его упорядочить — думаю в ЯваСкрипте есть функция сортировки массива). В массиве у меня не цифровые значения, а строчные (правда строки тоже можно сравнивать..., но у меня в голове не укладывается, как произойдет сравнение строки "f_login" и "f_password" — сравнение же произойдет по длине строк, правильно?). Задача была следующая. Есть форма с полями разного типа, большинство из этих полей — текстового типа (type="text"). При сабмите формы нужно проверить, заполнены ли обязательные поля и, если они не заполнены, задать им какой-нить стиль (document.myform.elements[i].className = "empty"). Так вот, на субимит событии повешана функция проверки полей, в вункции есть массив из имен тех полей, которые необходимы для заполнения. Цикл проходит всю форму попутно проверяя, есть ли в массиве конкретное поле, если есть — начинает проверку на то, заполнено ли оно.
Ну, здесь все легко, начальные знания ЯваСкрипта и все. Бинарный поиск подразумевает сравнить искомый элемент с центральным элементом массива — если искомый элемент больше, значит идем вверх по массиву и ищем там, если искомый элемент меньше — идем вниз массива и ищем там. Как мне здесь сравнить эти сроки? |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
artuska, строки сравниваются не по длинне, а последовательно по симводам, т.е.
w > aa == true -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Действительно. И в этой ситуации можно, думаю, обойтись без "переборки" массива, сделав как-нибудь так (все, кстати, знают, но что-то молчат
Единственное, что меня смутило - это сравнение типа текстового поля со строкой "textarea". Такой тип бывает? Как бы то ни было, я просто переписал так, как у Вас (разбирайтесь сами)... |
|||
|
||||
| egao |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 6.8.2007 Репутация: -1 Всего: нет |
вот извращенцы
лучше обязательным полям задать класс "required" и при сабмите пробежаться по всем полям с проверкой на обязательность. и не надо сюда привлекать такие страшные термины как "бинарный поиск", "алгоритмическая сложность" и "сферический конь в вакууме" |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
ну если вопрос был о валидации элементов формы, то я делаю validate="required|integer" (validate="required|email") и т.д. и перед сабмитом пробегаюсь по форме, смотрю, у кого есть атрибут (или свойство) validate, split'ю его на | и уже делаю соответствующие проверки.
давай ты покажешь как там работает indexOf |
|||
|
||||
| artuska |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
Опа! Спасибо за код, буду тестить. Я, в принципе, вообще не знаю, тикаи слова как hasOwnProperty и запись переменных в виде
Тип textarea существует! ;)
Нет, не лучше. Для обязательных полей у меня в тэге <label> задан сласс "required". В инпутах же я этого делать не буду, ибо на инпуты у меня уже прописаны стили в файлике цсс. Допустим, у меня куча обязательных полей, и если в каждый инпут я впишу class="required", то довольно грязненький код получится, а я привык, чтобы все тэги у меня были голенькими, без всякий классов и прочего, только необходимые параметры. Это сообщение отредактировал(а) artuska - 11.1.2008, 11:19 |
||||||
|
|||||||
| cruelangel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
> Для обязательных полей у меня в тэге <label> задан сласс "required"
ну так найди для каждого инпута соответствующий лэйбл. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |