Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 21.03.2013, 14:08
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от dmitriymar Посмотреть сообщение
тоже такой момент, и почемуто мне кажется что искомое вхождение всё таки больше похоже на 1 или 3 элемент поискового подмножества
Кста, ТС уточнил, что ситуация, когда больше одного совпадения, невозможна, либо есть ровно одно совпадение, либо нет ни одного. А значит нет смысла сравнивать, какое совпадение больше похоже, а какое меньше. Более сложная задача требует более сложного решения, а вычисление степени совпадения (или как там его, расстояния) - задача не для JavaScript, средства языка не позволяют эффективно, т.е. на таком языке, как напр. С решение будет работать на порядок, если не на два, быстрее.
Ответить с цитированием
  #22 (permalink)  
Старый 21.03.2013, 14:10
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от рони Посмотреть сообщение
а как без них?
String.indexOf, String.lastIndexOf
Сообщение от рони Посмотреть сообщение
в каком месте? поиск прекратится на самом большом совпадении
Да, не обратил внимания сразу.

Последний раз редактировалось rgl, 21.03.2013 в 14:13.
Ответить с цитированием
  #23 (permalink)  
Старый 21.03.2013, 14:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от dmitriymar
поправил тест . Сможете обосновать почему соус более релевантен чем яблоко?) яблоко ведь стоит в начале слова , и вполне логично , что более подходящий вариант связан с яблоком для стран с письменностью слева направо
ничего не понял - где чего поправлено ... какой соус ...
Ответить с цитированием
  #24 (permalink)  
Старый 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].
Ответить с цитированием
  #25 (permalink)  
Старый 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, "соус_острый" ) )
Вроде работает ))
Ответить с цитированием
  #26 (permalink)  
Старый 04.04.2013, 07:43
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от фонарик Посмотреть сообщение
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, "соус_острый" ) )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск HTMLElement'а в массиве z700i Общие вопросы Javascript 15 07.01.2012 21:13
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Поиск вхождения подстроки в массиве строк. FINoM Общие вопросы Javascript 8 27.02.2011 11:53
Поиск в двумерном массиве Vamp Общие вопросы Javascript 2 16.07.2009 13:05
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31