Краткость сестра таланта
Добрый вечер.
Проблемам: ... var somestring = "зеленое яблоко"; var count =0; var apple_color = ""; if (somestring.search("зеленое") !== -1) { apple_color = "зеленое"; count++; } if (somestring.search("желтое") !== -1) { apple_color = "желтое"; count++; } if (somestring.search("красное") !== -1) { apple_color = "красное"; count++; } ... if (count !== 1) throw ('желтозеленое яблоко или яблоко без цвета? '); ... Это как-то совсем кривокосо. Хотелось бы что-то вроде: var colors = new Array(); var somestring = "зеленое яблоко"; var count =0; ... each ( colors in somestring, function { count++; apple_color = this}); if (count !== 1) throw ('желтозеленое яблоко или яблоко без цвета? '); Как мне как-то так вот сделать? Спасибо за внимание :) |
var str = 'зеленое яблоко', colors = ['красное','зеленое','желтое','гнилое'], i = 0, found = false; for(; i < colors.length; i++) if(str.indexOf(colors[i])!=-1){ found = true; break } if(!found) throw "Что это за яблоко такое?"; |
for (var i = colors.length; i--; ) ;) |
Избавится от копипаста это конечно хорошо. Но я имел в веду нечто в таком духе:
jquery var str = 'желтое яблоко', colors = ['красное','зеленое','желтое','гнилое'], count = 0; apple_color = ""; $.each(colors, function(index, value) { if (str.indexOf(value) !== -1) { if (count !== 0) throw "лишние цвета"; count++; apple_color = value; } }); if (count !== 1) throw "а где цвет?"; alert("яблоко" + " " + apple_color); Я как-то криво вопрос поставил. Более точная формулировка "что делает in в JS и можно ли как-то его применить к последовательностям?" Нагуливать удалось не сразу. ЗЫ. Ухты! А я не знал, что так можно инициализировать переменные. |
in
rez = 'какое то яблоко'.match(/красное|зеленое|желтое|гнилое/i); if (rez&&rez.length==1) alert('яблоко: '+ rez[0]); else alert('Че за яблоко такое?'); |
О! От это уже красиво - спасибо :)
|
Часовой пояс GMT +3, время: 08:14. |