if 'a' in ['a','b','c']:
print "YES"
else:
print "NO"Согласитесь, просто и красиво. А вот в JavaScript нет такой штуки. И я решил написать для себя небольшое расширение объектов Number и String для JavaScript которое позволяет делать проверку похожим способом.Традиционно надо пройтись по всем элементам массива и сравнить с исходным значением и завернуть в функцию.
// определим функцию
function in(looking_for, list){
for(i in list){
if(looking_for == list[i]){
return true;
}
}
return false;
}
// тестим
if(in('1', ['1','2','3']){
alert('yes');
}else{
alert('no');
}А можно по современному расширить объект и добавить соответствующий метод. Я сделал это так.
String.prototype.in=function(list){
for(i in list){
if(this==list[i]){
return true;
}
}
return false;
};
Number.prototype.in=String.prototype.in;Теперь проверить вхождение числа или строки можно совсем просто
if('2'.in(['23','2'])){
alert('yes');
}else{
alert('no');
}
if((23).in([23,22])){
alert('yes');
}else{
alert('no');
}Update: Опа. Оказывается Safari ругается на этот код, ему не нравится метод под названием in. Изменив in на inList например работает все отлично.
Happy coding! Peace!
0 comments:
Post a Comment