 
			
				21.03.2013, 14:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.02.2011 
					
					
					
						Сообщений: 351
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от dmitriymar
			 
		
	 | 
 
	
		тоже такой момент, и почемуто мне кажется что искомое вхождение всё таки больше похоже на 1 или 3 элемент поискового подмножества  
	 | 
 
	
 
 Кста, ТС уточнил, что ситуация, когда больше одного совпадения, невозможна, либо есть ровно одно совпадение, либо нет ни одного. А значит нет смысла сравнивать, какое совпадение больше похоже, а какое меньше. Более сложная задача требует более сложного решения, а вычисление степени совпадения (или как там его, расстояния) - задача не для JavaScript, средства языка не позволяют эффективно, т.е. на таком языке, как напр. С решение будет работать на порядок, если не на два, быстрее.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 14:10
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.02.2011 
					
					
					
						Сообщений: 351
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	| 
		а как без них?
	 | 
 
	
 
 String.indexOf, String.lastIndexOf
 
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	| 
		в каком месте? поиск прекратится на самом большом совпадении
	 | 
 
	
 
 Да, не обратил внимания сразу.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось rgl, 21.03.2013 в 14:13.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 14:11
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от dmitriymar
			
		
	 | 
 
	| 
		поправил тест . Сможете обосновать почему соус более релевантен чем яблоко?) яблоко ведь стоит в начале слова , и вполне логично , что более подходящий вариант связан с яблоком для стран с письменностью слева направо
	 | 
 
	
 
 ничего не понял - где чего поправлено ... какой соус ...     
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.04.2013, 20:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.02.2013 
					
					
					
						Сообщений: 127
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от rgl
			 
		
	 | 
 
	
		
var massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"];
function findPartial( a, s )
{
  for( var i = 0; i < a.length; ++i )
    if( a[i].indexOf( s ) >= 0 )
      return i;
  return -1;
}
alert( findPartial( massiv, "соус_острый" ) );
	 | 
 
	
 
 Я реализовал в своей задаче скрипт что выше, который написал мсье  rgl. Он прекрасно работает для нужного мне поиска. Подскажите пожалуйста, как изменить данный скрипт так, чтобы в итоге в алерте увидеть все номера индексов найденных совпадений? Т.е в данном случае, необходимо получить индексы [1] и [3].  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.04.2013, 22:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.02.2013 
					
					
					
						Сообщений: 127
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"];
function findPartial(a, s)
{
	var zz = []
  for( var i = 0; i < a.length; ++i )
    if( a[i].indexOf(s) >= 0 )
	  zz.push(i)	  
	  return zz
  return -1;
}
alert( findPartial( massiv, "соус_острый" ) )
Вроде работает ))  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.04.2013, 07:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.02.2011 
					
					
					
						Сообщений: 351
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от фонарик
			 
		
	 | 
 
	
		
var massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"];
function findPartial(a, s)
{
	var zz = []
  for( var i = 0; i < a.length; ++i )
    if( a[i].indexOf(s) >= 0 )
	  zz.push(i)	  
	  return zz
  return -1;
}
alert( findPartial( massiv, "соус_острый" ) )
Вроде работает ))
	 | 
 
	
 
 В какой-то из умных книжек (не помню в какой) написано что-то вроде "есть только одна вещь хуже отсутствия отступов - неправильные отступы"
 
var massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"];
function findPartial(a, s)
{
  var zz = []
  for( var i = 0; i < a.length; ++i )
    if( a[i].indexOf(s) >= 0 )
	  zz.push(i)	  
  return zz // тут отсутп был неправильный, ибо выполняется всегда, а не внутри if
  // return -1; //а это вообще никогда не выполняется
}
alert( findPartial( massiv, "соус_острый" ) )
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |