Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывести самое короткое слово в строке (https://javascript.ru/forum/misc/2418-vyvesti-samoe-korotkoe-slovo-v-stroke.html)

troy2008 23.12.2008 12:42

Вывести самое короткое слово в строке
 
Есть текст, в котором необходимо определить
• количество слов (сделано)
• последнее слово в тексте(сделано)
• самое короткое слово в тексте

<html>
<head>
<title>10</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/ font size="4">

<script language="JavaScript">  
  function numsym(obj) {
    var h=' '  
    var s=obj.textin.value  
    var res=0
  for (var i=0; i<=s.length-1; i++)  
      {ch=s.charAt(i)  
  if (ch==h)  
     {res+=1}  
      } 
	f=res+1; 
  obj.result.value=f 
  
  var myArray = s.split(' '); 
  alert(myArray[res])
  
} 
</script>  
</head>  
<body bgcolor="#E6E6FA"> 
<form name="form1">  
	Текст:<br> 
	<textarea name="textin" rows=10 cols=100></textarea><hr>   
	<input type="button" value="Определить" 
	
	onClick="numsym(form1)"><hr>  
	Колличество слов:  
	<input type="text" name="result" size=8><hr>  
	<input type="reset" value="Сбросить">  
</form>  
</body>  
</html>



помогите сделать последнее задание, заранее спасибо

пробовал сделать так, но не работает:

myArray[0]=sm;
  for (var j=0; j<=f; j++)
  {
	if myArray[j]<sm 
	{
		sm=myArray[j];
	}  
  }
   alert(sm)

ZoNT 23.12.2008 12:46

У тебя уже есть массив слов. Тебе осталось принять первое слово как предполагаемое минимальное, а потом в цикле (начиная со второго слова) сравнивать все слова с запосненным в переменной (первоначально - с первым). Если сравниваемое слово меньше того, что в переменной, то в переменную записываем новое (текущее) слово. И так до конца массива. В итоге в переменной будет самое короткое слово.

Kolyaj 23.12.2008 13:31

Длина строки хранится в свойстве length.

troy2008 23.12.2008 18:21

<script language="JavaScript">  
  function numsym(obj) {
    var h=' '  
    var s=obj.textin.value  
    var res=0
  for (var i=0; i<=s.length-1; i++)  
      {ch=s.charAt(i)  
  if (ch==h)  
     {res+=1}  
      } 
	f=res+1; 
  obj.result.value=f 
  
  var myArray = s.split(' '); 
  myArray[0]=sm;
  for (var j=1; j<=f; j++)
  {
    if myArray[j].length<sm.length 
    {
        sm=myArray[j];
    }  
  }
   alert(sm)
} 
</script>


я так и сделал, но все равно не работает(. в чем ошибка?

ZoNT 23.12.2008 18:27

myArray[0]=sm; ???

troy2008 23.12.2008 18:39

первое слово присваивается переменной sm

Kolyaj 23.12.2008 18:40

Фигасе у вас присваивание? Вы араб?

troy2008 23.12.2008 18:43

очень смешно

Kolyaj 23.12.2008 18:44

Т.е. вы до сих пор не поняли, что в этой строчке не так?

Цитата:

Сообщение от troy2008
sm=myArray[j];

Почему здесь sm слева?

troy2008 23.12.2008 18:50

не помогло

ZoNT 23.12.2008 18:51

Цитата:

Сообщение от Kolyaj
sm=myArray[j];

sm=myArray[0];

troy2008 23.12.2008 18:56

т.е. все время будет присваиваться первое слово?

Kolyaj 23.12.2008 19:00

ZoNT,
это была цитата строчки, а не то, как надо предыдущую писать.

troy2008 23.12.2008 19:05

у кого-то получилось заставить скрипт работать?

ZoNT 23.12.2008 20:20

var s = 'qwye r2ty qwww ert efger';
var myArray = s.split(' '); 
sm = myArray[0];
  for (var j=1; j<myArray.length; j++)
  {
    if (myArray[j].length<sm.length)
    {
        sm=myArray[j];
    }  
  }
   alert(sm)

troy2008 23.12.2008 20:35

спасибо!!

ZoNT 23.12.2008 21:39

а сам ты исправить нормально мог с таким количеством явных подсказок?

troy2008 23.12.2008 21:56

если бы хорошо знал javascript не задавал бы вопросов. зачем тогда нужен форум?

Gvozd 23.12.2008 23:23

Цитата:

Сообщение от troy2008
зачем тогда нужен форум?

вот в этом ИХ все
зачем еще нужен форум.))))
troy2008,
этот форум в первую очередь нужен, для того чтобы люди которые занимаются JavaScript смогли бы проконсультироватся на предмет реализации специфичных задач, а не классическую задачу из учебника для новичков
Вам помогли.
Потом помогли еще раз, указав более подробно что неправильно
и насмешки более чем обоснованы, и не связаны с вашими низкими знаниями JS, а с вашей логикой, которая была бы присуща арабу(они, кстати расчеты пишут слева направо, насколько я помню.)
Форум в первую очередь, для профессиональных вопросов.
ваш таковым не является
Встерчный вопрос вам.
Зачем вам мозг?
вы же им пользуетесь не в полную силу.
могли бы приложить более усердия в умственной работе

troy2008 24.12.2008 22:31

а не пошли бы вы на *** если тут все такие умные

Gvozd 24.12.2008 23:25

грубо.
я полагаю, что все-таки пойдете вы, куда бы там ни было.
а вот мы останемся тут на форуме, и будем помогать, тем кто прикладывает усилия к решению задач, а не задает вопосы с очевидныими ответами, которые прозвучали в почти что явной форме на пару постов выше


Часовой пояс GMT +3, время: 13:46.