 
			
				01.06.2015, 22:23
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.04.2015 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Найти совпадения в тексте
			 
			
		
		
		
		Здравствуйте форумчане, по заданию нужно создать текстовое поле и ввести в него слова через запятую, проанализировать его и вывести результаты по 6 критериям: 
Все гласные буквы, которые входят в каждое слово 
Все согласные буквы, которые не входят ни в одно слово 
 
Все звонкие согласные буквы, которые входят хотя бы в одно слово 
Все глухие согласные, которые не входят хотя бы в одно слово 
 
Все согласные буквы, которые входят только в одно слово 
Все глухие согласные буквы, которые не входят только в одно слово 
 
Написано что нужно реализовать при помощи объекта Array и его методов. 
Подскажите пожалуйста с помощью каких методов такое возможно реализовать... буду благодарен любой помощи. 
Я знаю только один - split - с помощь его я превратил сроку текста в массив из слов, а что дальше делать хз... 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.06.2015, 23:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от HelloDarkness
			
		
	 | 
 
	| 
		Все гласные буквы, которые входят в каждое слово
	 | 
 
	
 
 создать массив  гласных букв -- отфильтровать по всем словам. 
то есть кроме массива слов нужно 6 массивов для фильтрации. 
можно циклом , можно   http://learn.javascript.ru/array-iteration
вы начните.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 00:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.04.2015 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		создать массив  гласных букв -- отфильтровать по всем словам. 
то есть кроме массива слов нужно 6 массивов для фильтрации. 
можно циклом , можно  http://learn.javascript.ru/array-iteration 
вы начните.
	 | 
 
	
 
 Спасибо, но, если я правильно понял, то нам хватит и четырех массивов: 
- Гласных 
- Согласных 
- Звонких согласных 
- Глухих согласных 
т.к. согласные и глухие по заданию используются дважды 
 
И я не понял как "отфильтровать по всем словам" допустим я имею 2 массива: 
var array1 = [мать, отец, сын]; 
var array2 = [а, у, о, ы, и, э, я, ю, ё, е]; 
как мне с помощью второго отфильтровать первый по заданным условиям?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось HelloDarkness, 02.06.2015 в 00:51.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 00:53
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		HelloDarkness,
  
function blender(letters, words, select) {
    return letters.filter(function(letter) {
        return words.every(function(word) {
            return word.toLowerCase().indexOf(letter.toLowerCase()) != -1 ? select : !select
        })
    })
};
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], true)
alert(test);//буквы которые входят в каждое слово [O]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], false)
alert(test);//буквы которых нет в каждом слове [Ё,У,Ю,И,Э]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], test, false)
alert(test);//буквы которые есть хотябы в одном слове [А,Я,О,Ы,Е]
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось рони, 02.06.2015 в 01:51.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 01:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.04.2015 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		HelloDarkness, 
 
function blender(letters, words, select) {
    return letters.filter(function(letter) {
        return words.every(function(word) {
            return word.toLowerCase().indexOf(letter.toLowerCase()) != -1 ? select : !select
        })
    })
};
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], true)
alert(test);//буквы которые входят в каждое слово [O]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], false)
alert(test);//буквы которых нет в каждом слове [Ё,У,Ю,И,Э]
	 | 
 
	
 
 фантастика, спасибо!   
только функция мне не много не понятна, что в ней нужно будет изменить да бы применить к оставшимся двух условиям? 
-буквы которые входят/ не входят  хотя бы в одно слово
-буквы которые входят/ не входят  только в одно слово
тест:
 
function blender(letters, words, select) {
    return letters.filter(function(letter) {
        return words.some(function(word) {
            return word.toLowerCase().indexOf(letter.toLowerCase()) != -1 ? select : !select
        })
    })
};
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], true)
alert(test);//буквы которые входят в каждое слово [O]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], false)
alert(test);//буквы которых нет в каждом слове [Ё,У,Ю,И,Э]
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось HelloDarkness, 02.06.2015 в 01:49.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 01:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 HelloDarkness, 
 есть буквы которых нет [Ё,У,Ю,И,Э] ни в одном слове -- значит остались буквы которые есть хотябы в одном слове. 
 
смотрите пример выше - добавлено строки 12-13 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 02:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.04.2015 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		HelloDarkness, 
 есть буквы которых нет [Ё,У,Ю,И,Э] ни в одном слове -- значит остались буквы которые есть хотябы в одном слове. 
 
смотрите пример выше - добавлено строки 12-13
	 | 
 
	
 
 логично    с этим пунктом я вроде бы разобрался с помощью смены метода с every на some  в третей строке вашего кода.
 
Подскажите лучше по-поводу последнего пункта: 
-Все гласные буквы, которые входят только в одно слово. 
Как отфильтровать допустим только первый(0) элемент массива, а не весь массив?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось HelloDarkness, 02.06.2015 в 02:27.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 02:35
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		HelloDarkness, 
 наверно так вам будет проще
 
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
function blender(letters, words, select) {
    return letters.filter(function(letter) {
        var num = words.reduce(function(sum, word) {
            word.toLowerCase().indexOf(letter.toLowerCase()) != -1 && sum++
            return sum
        },0)
        return select(num)
    })
};
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num == 4   //это длина массива слов
})
alert(test);//буквы которые входят в каждое слово [O]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num == 0
})
alert(test);//буквы которых нет в каждом слове [Ё,У,Ю,И,Э]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num > 0
})
alert(test);//буквы которые есть хотябы в одном слове [А,Я,О,Ы,Е]
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num == 3
})
alert(test);//буквы которыx нет только в 1 слове []
</script>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 08:35
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от HelloDarkness
			
		
	 | 
 
	| 
		Как отфильтровать допустим только первый(0) элемент массива, а не весь массив?
	 | 
 
	
 
 так вместо ["которые", "входят", "каждое", "слово"] напишите ["которые"] 
или [["которые", "входят", "каждое", "слово"] [0]]  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.06.2015, 10:38
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 26.04.2015 
					
					
					
						Сообщений: 7
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		HelloDarkness, 
 наверно так вам будет проще 
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
function blender(letters, words, select) {
    return letters.filter(function(letter) {
        var num = words.reduce(function(sum, word) {
            word.toLowerCase().indexOf(letter.toLowerCase()) != -1 && sum++
            return sum
        },0)
        return select(num)
    })
};
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num == 4   //это длина массива слов
})
alert(test);//буквы которые входят в каждое слово [O]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num == 0
})
alert(test);//буквы которых нет в каждом слове [Ё,У,Ю,И,Э]
test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num > 0
})
alert(test);//буквы которые есть хотябы в одном слове [А,Я,О,Ы,Е]
var test = blender(["А", "Я", "О", "Ё", "У", "Ю", "Ы", "И", "Э", "Е"], ["которые", "входят", "каждое", "слово"], function(num) {
   return num == 3
})
alert(test);//буквы которыx нет только в 1 слове []
</script>
</body>
</html>
	 | 
 
	
 
 Не понял как это работает, но похоже он построен на том что мы заранее задаем в коде массив и его длину? 
Мне же нужно что бы данные брались из текстового поля...
  
<input type="text" value="(слова которые введет пользователь, через запятую)" name ="ddata"> 
<script> 
var array = document.ddata.value.split(', ") 
</script> 
то есть мы получаем массив, но мы не знаем заранее что это за массив и из скольких элементов он будет состоять...  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |