Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как проверить что 3 элемента массива повторяются (https://javascript.ru/forum/misc/70362-kak-proverit-chto-3-ehlementa-massiva-povtoryayutsya.html)

angrypchelka 30.08.2017 19:26

как проверить что 3 элемента массива повторяются
 
мне нужна функция которая будет проверять массив и оставлять в нем все элементы которые повторяются 3 и более раз но перебор с помощью циклов не подходит так как планирую вызывать функцию более 100 раз

рони 30.08.2017 20:02

Цитата:

Сообщение от angrypchelka
перебор с помощью циклов не подходит

интересно узнать другой вариант??? может вы что-то не договариваите?

Alexandroppolus 30.08.2017 20:48

angrypchelka,

а элементы в массиве - какие? строки, числа, объекты?

рони 30.08.2017 20:54

angrypchelka,
http://javascript.ru/forum/misc/6302...v-massive.html

j0hnik 30.08.2017 23:04

var arr = [9, 9, 9, 111, 5, 2, 5, 3, 4, 4, 5, 7];
arr=arr.filter((el, i)=> { 
var s = 0; 
while (i--) if (el == arr[i]) s++; 
return (s>1&&s<=2); 
}); 
alert(arr);

рони 31.08.2017 00:02

j0hnik,
что делает ваш код ?

j0hnik 31.08.2017 00:06

Цитата:

Сообщение от рони (Сообщение 463176)
j0hnik,
что делает ваш код ?

Рони, если вы какой то косяк заметили, пишите сразу, что интриговать.

j0hnik 31.08.2017 00:06

оставляет в массиве элементы которые повторяются 3 или более раз

рони 31.08.2017 00:59

j0hnik,
var arr = [9, 9, 9, 111, 5, 2,  3, 4, 4, 5, 5,5,7];
arr=arr.filter((el, i)=> {
var s = 0;
while (i--) if (el == arr[i]) s++;
return (s>1);
});
alert(arr)

j0hnik 31.08.2017 01:14

Рони, модифицировал

function three(arr){
return arr.filter((el, i)=> { 
var s = 0; 
while (i--) if (el == arr[i]) s++; 
return (s>1&&s<=2); 
});
}
alert(three([9, 9, 9, 111, 5, 2,  3, 4, 4, 5, 5,5,7]));


Часовой пояс GMT +3, время: 17:28.