поиск одинаковых значений элементов массива 
		
		
		
		подскажите как можно проверить совпадения чисел в массиве 
	var prov=new Array (rand1,rand2,rand3,rand4); где rand1-rand4 рандомные числа в PHP такое есть в javascript не нашел (  | 
	
		
 Пробежать по массиву и найти повторяющиеся числа. При желании завернуть это в функцию. При желании положить ее в прототип класса Array. 
	 | 
	
		
 вот с пробежкой по массиву у мну проблема я незнаю как это сделать? только пробую писать на JS... 
	 | 
	
		
  | 
	
		
 спасибо за помощь, все получилось ))) 
	 | 
	
		
 поиск одинаковых значений элементов массива 
		
		
		
		"Пробежать по массиву и найти повторяющиеся числа" 
	Пусть в масиве около 70 чисел из них около 30 повторяющихся, некоторые повторяются по 2 или 3 раза каков алгоритм определения того, что число повторилось? Строить двойной цикл? но как? Если можно, привести рабочий скрипт.  | 
	
		
 если у вас в массиве простые типы данных, то заводите дополнительный массив, куда перебирая в один цикл элементы ложим элементы с индексом равным значению элементу, а значением, равным количеству повторений(ну, или любую другую инфу в зависимости от конечной задачи) 
	потом из этого массива уже получаете нужные цифры(количество повторений, количество не повторяющихся элементов,...), или приводите исходный массив к нужному виду в цикле(удаляете повторы всех элементов, конкретных элементов,...)  | 
	
		
 Gvozd, по Вашему ответу Вы бы сами поняли, каким должен быть код скаипта? 
		
		
		
		Gvozd, по Вашему ответу Вы бы сами поняли, каким должен быть код скаипта? 
	 | 
	
		
 да.более чем. 
	для проверки, я кинул свой пост знакомому, не сидящему на форуме. он подтвердил, что понимает как примерно будет выглядеть код  | 
	
		
 Конгратулейшен! 
		
		
		
		Конгратулейшен! 
	 | 
	
		
 вам все еще неясна реализация? 
	ок, я напишу. одно уточнение: какие выходные данные вам нужны? Цитата: 
	
 или что- то другое? для пояснения : 
var arr=[1,2,3,2,4,1,2,9,5,3];
var arr2={};
for(i in arr){
(arr2[arr[i]]!=undefined)?(arr2[arr[i]]++):(arr2[arr[i]]=1);
}
console.log(arr2);//число повторений для каждого элемента массива
 | 
	
		
 Цитата: 
	
 
Array.prototype.scan = function() {
	for (var values = [], counts = [], i = 0, length = this.length; i < length; i++) {
		var j = values.indexOf(this[i]);
		if (j < 0) {
			values.push(this[i]);
			counts.push(1);
		} else counts[j]++;
	}
	return [values, counts];
};
alert([1, 2, 3, 4, 5, 2, 6, 7, 1, 2, 1, 5, 1, 1, 2].scan().join('\r\n'));
Цитата: 
	
 
Array.prototype.unique = function() {
	var result = [], i = 0, j = 0, length = this.length;
	while (i < length) {
		var I = this[i++], k = j;
		while (k-- && result[k] !== I);
		if (k < 0) result[j++] = I;
	}
	return result;
};
alert([1, 2, 3, 4, 5, 2, 6, 7, 1, 2, 1, 5, 1, 1, 2].unique());
 | 
	
		
 А почему result -- массив? Для задач подобного плана предназначен хэш. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Прочитал все посты и не могу понять. 
	У меня есть массив чисел. Нужно выявить из него все повторяющиеся, затем убрать их из этого массива, а количество повторений(общее) записать в переменную. Решение мной понимается так: сортируем массив и параллельно выносим из него все повторения складывая их в другой массив. Применяем при этом "массив.sort(функция)". Но вот то ли знаний то ли логики у меня не хватает. Помогите.  | 
	
		
 Использовал функцию сравнения, при этом не понимая, как она работает. "return a - b" вот это что такое? Я читаю как a минус b. Но какое отношение это имеет к сравнению?) Господа, если Вас не обременит, внесите ясность :)  
	art13, примерно так. 
var x = [14, 7, 11, -1, 0, 12, 5, 3, 11, -1, 0, 7, 14];
x.sort(function(a, b) {return a - b;});
for(var j = 0, i = 1; i < x.length; i++) {
	if(x[i-1] === x[i]) {
		x.splice(i,1);
		i--;
		j++;
	}
}
alert('найдено дубликатов - ' + j);
 | 
	
		
 Спасибо тебе добрый человек. От смерти спас. Я вот тоже так и не вкупил как a-b относится к сравнению. А запарился я именно с FOR. Ну теперь вижу куда копать нужно было. 
	 | 
	
		
 Есть еще вот трактовка 
	http://www.eltisbook.ru/dhtml/massivi-javascript.php  | 
	
		
 art13, спасибо за ссылку. Это еще я понять могу. Тут на мой взгляд все логично - сравниваем элементы и возвращаем позицию сдвига. 
	
function obr(a, b) {
	if(a < b) return – 1;
	if(a == b) return 0;
	if(a > b) return 1;
}
а вот это дело не понятно. 
function(a, b) {return a - b;}
Ну, допустим, a = 7, b = 14, следовательно, но a - b это 7 - 14 = -7 и что? Сдвигать на -7? Впрочем, есть одно предположение, сейчас его проверю :agree: Думается мне, что метод .sort распознает только три значения: -1, 0 и 1. А если к нему поступают другие, то он автоматически их "подгоняет". Да, кажется, так оно и есть :)  | 
	
		
 Вот вот. Кроме такой догадки у меня больше не было. 
	 | 
| Часовой пояс GMT +3, время: 03:00. |