Связь с администрацией сайта:       

demo

Среди толпы я одинок

Поиск одинаковых слов в предложениях

Задание:
Есть две строки со случайным текстом. Необходимо проанализировать обе строки на слова, которые присутствуют в обеих строках. Вывести на экран те слова, которые встречаются и в первой и во второй строке.
 
Дано:
 - Две строки Sone, Stwo типа String;
Найти:
- Слова, которые встречаются в обеих строках.
- Вывести на экран эти слова.
 
<script>
         var Sone = "Это тестовый пример для поиска одинаковых слов в предложениях. 
Он больше подходит для словарей и поиска слов в именительном падеже, такие как - массив,
носорог, яваскрипт, код, он"
, Stwo = "Сперва для этого сделаем массив. И данный код будет разбивать на слова и предлоги
в предложениях и заносить результаты в данный массив. "
, Smarks = ",.!?-;<>[]()@#$%^&* "; //Создаем строку, необходимую для поиска знаков
//препинания и символов, не относящихся к словам
var ArrayWords = []; //Создаем массив для того, чтобы заносить в него слова var tempString = ""; //Строка, необходимая для хранения слова из строки var counterWord = 0; //Счетчик массива ArrayWords   //Для начала проанализируем нашу строку "Sone" и разобьем ее на слова.   for (var i = 0; i < Sone.length; i++) { if (Smarks.indexOf(Sone[i])==-1) { tempString += Sone[i]; } else { if (tempString != '') {ArrayWords[counterWord] = tempString; counterWord++; } tempString = ""; } } //Следующим шагом будет написание функции, для удаления одинаковых слов в массиве. //Не пугайтесь. Не будет огромных циклов, всё сделаем внутреннеми средствами JS   function uniqueWordsFromArray(value, index, self) { return self.indexOf(value) === index; }   //Вот и всё. Функция готова. Сама функция onlyUnique проверяет данные массива. //Если данное значение является первым - возвращаем true. Если нет, то он должен быть дубликатом
//и возвращаем false и не копируем его.
// Далее вводим новую переменную unique куда и будем заносить отсортированные слова из массива
//ArrayWords
// Используяметод filter.   var uniqueWords = ArrayWords.filter( uniqueWordsFromArray );   // Это решение работает без каких-либо дополнительных библиотек, как JQuery или prototype.js. // Функция работает и для массивов со смешанными типами данных   // А теперь, используя наш псевдословарь, сделанный из слов первой строки, найдем совпадения и
//выведем их на экран
    for (var i = 0; i < uniqueWords.length; i++) { if (Stwo.indexOf(uniqueWords[i])!=-1) { document.write(uniqueWords[i]+"<br/>"); } }   </script>
 
Теперь можно переводить данный скрипт в функцию и использовать ее как матфильтр или для реализации поиска на сайте.
 
<script>
 
function SearchUniqueWords(Sone,Stwo) {
    var Smarks = ",.!?-;<>[]()@#$%^&* "; //Создаем строку, необходимую для поиска знаков 
//препинания и символов, не относящихся к словам
var ArrayWords = []; //Создаем массив для того, чтобы заносить в него слова var tempString = ""; //Строка, необходимая для хранения слова из строки var counterWord = 0; //Счетчикмассива ArrayWords var uniqueWords = [];   for (var i = 0; i < Sone.length; i++) { if (Smarks.indexOf(Sone[i])==-1) { tempString += Sone[i]; } else { if (tempString != '') {ArrayWords[counterWord] = tempString; counterWord++; } tempString = ""; } }   function uniqueWordsFromArray(value, index, self) { return self.indexOf(value) === index; }   uniqueWords = ArrayWords.filter( uniqueWordsFromArray ); ArrayWords = [];   for (var i = 0; i < uniqueWords.length; i++) { if (Stwo.indexOf(uniqueWords[i])!=-1) { ArrayWords.push(uniqueWords[i]); } }   return ArrayWords; }   var Soutone = "Это тестовый пример для поиска одинаковых слов в предложениях. Он больше подходит
для словарей и поиска слов в именительном падеже, такие как - массив, носорог, яваскрипт, код, он"
, Souttwo = "Сперва для этого сделаем массив. И данный код будет разбивать на слова и предлоги в
предложениях и заносить результаты в данный массив. "
;   var ArrayGlobal = SearchUniqueWords(Soutone,Souttwo); document.write(ArrayGlobal.join("<br />"));   </script>
 
Rate this item
(0 votes)
Login to post comments