05.02.2010, 17:13
|
|
Аспирант
|
|
Регистрация: 05.02.2010
Сообщений: 35
|
|
Проверка массива на наличие элемента
Вопрос простой: «Как проверить массив на наличие конкретного значения или элемента под тем или иным номером или именем?»
Но у меня проблемы, возможно, даже с проверкой на равенство: "==" и "=" нередко путаю
|
|
05.02.2010, 17:40
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от Скриптор
|
элемента под тем или иным номером или именем?
|
сравнить элемент под номером или именем с undefined
если не равен, то существует
Сообщение от Скриптор
|
конкретного значения
|
http://javascript.ru/php/in_array
Сообщение от Скриптор
|
"==" и "=" нередко путаю
|
Пересадкой мозга не занимаемся.
других идей внешней помощи по этому вопросу не вижу. вам надо только самому запомнить это
|
|
05.02.2010, 17:46
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Gvozd
|
других идей внешней помощи по этому вопросу не вижу. вам надо только самому запомнить это
|
не в этом дело. я раньше когда сидел на Delphi то тоже путал. Там := присваивание, а = сравнение. В JS же = присваивание, == сравнение
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
|
|
05.02.2010, 17:47
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Gvozd
|
сравнить элемент под номером или именем с undefined
|
А если там undefined лежит? in нужен.
http://alljs.ru/2009/09/undefined-undefined/
Последний раз редактировалось Kolyaj, 05.02.2010 в 17:51.
|
|
05.02.2010, 18:30
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
Скриптор,
Ещё примерчик для понимания:
var mass=new Array('яблоко','груша','слива','картофель');
index = parseInt(prompt("Введите индекс массива", 0));
if(index>=mass.length || index<0 || isNaN(index)){alert("Вы выбрали несуществующий элемент")}
else{
alert("Вы выбрали: "+mass[index]);
}
Строковая индексация
var mass=new Array('яблоко','груша','слива','картофель');
mass["яблоко"] = "Яблоки по 10 грн за кг";
mass["груша"] = "Груши по 11 грн за кг";
mass["слива"] = "Сливы по 12 грн за кг";
mass["картофель"] = "Картофель по 9 грн за кг";
for(var i=0;i<mass.length;i++){
var index = prompt("Введите строковый индекс массива", 'яблоко');
if(index!=mass[i]){alert("Вы выбрали несуществующий элемент")}
else{
alert("Вы выбрали: "+mass[index]);
}
}
А вообще:
Хорошая статья
Последний раз редактировалось JsLoveR, 05.02.2010 в 19:18.
|
|
05.02.2010, 21:15
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от PeaceCoder
|
не в этом дело.
|
вам кто-то помог запомнить это различие?
полагаю, что вы в конце-концов просто привыкли, исписав тысячу-другую строк.
вот, и тут ТС-у никто не поможет.только самому привыкать.
Сообщение от Kolyaj
|
http://alljs.ru/2009/09/undefined-undefined/
|
Спасибо большое. не подозревал о такой тонкости
|
|
05.02.2010, 23:29
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Gvozd
|
Спасибо большое. не подозревал о такой тонкости
|
угумсь. хорошая статья.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
|
|
09.02.2010, 01:20
|
|
Аспирант
|
|
Регистрация: 05.02.2010
Сообщений: 35
|
|
Спасибо, ребята, реально помогли. И надеюсь не только мне
-----------------
=to=> JsLoveR: Спасибо за примеры и юмор (Предыдущий пример вполне можно было оставить: хотя бы, так сказать, "в копилочку", кому-нибудь да пригодится).
=to=> PeaceCoder: Спасибо за понимание. Кстати, у тебя хорошая подпись!
-----------------
Последний раз редактировалось Скриптор, 09.02.2010 в 01:28.
|
|
09.02.2010, 02:05
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Скриптор
|
=to=>PeaceCoder: Спасибо за понимание. Кстати, у тебя хорошая подпись!
|
Незачто. Относись к людям так же, как хотел бы отношения к себе - хорошая поговорка. Вот кстати ее я ща тоже добалю в подпись Немного опять же перефразировав =)
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
|
|
12.04.2012, 00:04
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
А как насчёт проверок наличия элементов в массивах ссылок, например, таких как children (если я, конечно, правильно понимаю, что данный массив хранит для некоторого элемента ссылки на все его дочерние элементы)?
Например, есть div со ссылкой: div - родительский элемент, ссылка - дочерний.
Нужно, чтобы при уходе мыши с div этот div скрывался, кроме тех случаев, когда уход происходит на его дочерний элемент (ссылку).
Решение, как видится, заключается во фразе "если уходишь не на дочерний элемент, то скрывайся".
Для браузеров с поддержкой target/relatedTarget, код такой.
Код:
|
<div id=div1 style="background: gray"
onmouseout = "
if (!(event.relatedTarget in this.children)) this.style.display = 'none';
">
<a href="">content</a>
</div> |
Тем не менее данный код не работает, а event.relatedTarget in this.children всегда равен true.
Что не так с данной проверкой??
|
|
|
|