Просмотр полной версии : Проверка массива на наличие элемента
Скриптор
05.02.2010, 17:13
Вопрос простой: «Как проверить массив на наличие конкретного значения или элемента под тем или иным номером или именем?»
Но у меня проблемы, возможно, даже с проверкой на равенство: "==" и "=" нередко путаю :(
элемента под тем или иным номером или именем?
сравнить элемент под номером или именем с undefined
если не равен, то существует
конкретного значения
http://javascript.ru/php/in_array
"==" и "=" нередко путаю
Пересадкой мозга не занимаемся.
других идей внешней помощи по этому вопросу не вижу. вам надо только самому запомнить это
PeaceCoder
05.02.2010, 17:46
других идей внешней помощи по этому вопросу не вижу. вам надо только самому запомнить это
не в этом дело. я раньше когда сидел на Delphi то тоже путал. Там := присваивание, а = сравнение. В JS же = присваивание, == сравнение
сравнить элемент под номером или именем с undefined
А если там undefined лежит? in нужен.
http://alljs.ru/2009/09/undefined-undefined/
Скриптор,
Ещё примерчик для понимания:
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]);
}
}
А вообще:
А если там undefined лежит? in нужен.
http://alljs.ru/2009/09/undefined-undefined/
Хорошая статья
не в этом дело.
вам кто-то помог запомнить это различие?
полагаю, что вы в конце-концов просто привыкли, исписав тысячу-другую строк.
вот, и тут ТС-у никто не поможет.только самому привыкать.
http://alljs.ru/2009/09/undefined-undefined/
Спасибо большое. не подозревал о такой тонкости
PeaceCoder
05.02.2010, 23:29
Спасибо большое. не подозревал о такой тонкости
угумсь. хорошая статья.
Скриптор
09.02.2010, 01:20
Спасибо, ребята, реально помогли. И надеюсь не только мне ;)
-----------------
=to=>JsLoveR: Спасибо за примеры и юмор (Предыдущий пример вполне можно было оставить: хотя бы, так сказать, "в копилочку", кому-нибудь да пригодится).
=to=>PeaceCoder: Спасибо за понимание. Кстати, у тебя хорошая подпись!
-----------------
PeaceCoder
09.02.2010, 02:05
=to=>PeaceCoder: Спасибо за понимание. Кстати, у тебя хорошая подпись!
Незачто. Относись к людям так же, как хотел бы отношения к себе - хорошая поговорка. Вот кстати ее я ща тоже добалю в подпись Немного опять же перефразировав =)
А как насчёт проверок наличия элементов в массивах ссылок, например, таких как 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.
Что не так с данной проверкой??
Кто-нибудь знает как осуществлять такие проверки??
Товарищи, профессора, нужно создать новую тему что ли, чтобы получить ответ, или просто никто не знает решения (тогда понятно)??
bes,
да, создай новую тему, а не устраивай некролог, опиши суть задачи, я не собираюсь читать все предыдущие посты
9xakep, спасибо и на этом, теперь хоть понятно, что дальше делать
Скриптор,
Ещё примерчик для понимания:
Строковая индексация
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]);
}
}
А каким образом может сработать этот код?
В строке «if(index!=mass[i]){alert("Вы выбрали несуществующий элемент")}» вы сравниваете index со значением только первого элемента массива. Результат может быть положительным лишь в случае набора в prompt'овой строке: "Яблоки по 10 грн за кг".
хорошая тема, в ней я узнал, что некропостить надо с умом :D
вы сравниваете index со значением только первого элемента массива. Результат может быть положительным лишь в случае набора в prompt'овой строке: "Яблоки по 10 грн за кг".
index - возвращаемая promp-м строка сравнивается с i по счёту элементом массива mass
что такое mass[index] можно понять из примера
var mass=new Array('яблоко','груша','слива','к артофель');
mass["яблоко"] = "Яблоки по 10 грн за кг";
mass["груша"] = "Груши по 11 грн за кг";
mass["слива"] = "Сливы по 12 грн за кг";
mass["картофель"] = "Картофель по 9 грн за кг";
alert(mass.яблоко)
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot