|
Найти тройные дубликаты в массиве
Добрый день.
Нужно найти тройные дубликаты в массиве. Код
function myFunction() {
var arr = [9, 9, 9, 111, 2, 3, 4, 4, 5, 7];
var sorted_arr = arr.slice().sort();
var results = [];
for (var i = 0; i < arr.length - 1; i++) {
if (sorted_arr[i + 1] == sorted_arr[i] == sorted_arr[i+2]) {
results.push(sorted_arr[i]);
}
}
alert(results);
}
с тройными не работает.Этот, тоже, не работает.
function myFunction() {
var fruits = [3, 3, 3, 5, 4, 6, 8, 9];
var a = fruits.sort();
document.getElementById("demo").innerHTML = a;
for(var i = 0, j = 1, k = 2; i < fruits.length, j < fruits.length, k < fruits.length; i++, j++, k++){
if(fruits[i].valueOf() == fruits[j].valueOf() == fruits[k].valueOf()){
alert(fruits[i].valueOf()+" "+fruits[j].valueOf() +" "+fruits[k].valueOf());
}
}
}
|
var arr = [9, 9, 9, 111, 5, 2, 5, 3, 4, 4, 5, 7],
count = [];
for (var i = 0; i < arr.length; i++) {
count[arr[i]]= (count[arr[i]] | 0) + 1;
}
count.forEach(function(item, j, array) {
if (item==3) {
alert( j );
}
});
Или дубликаты - когда подряд? |
Dilettante_Pro,
Спасибо. Для облегчения поиска дубликатов, делала сортировку. |
Вариант.
<script src="http://underscorejs.ru/underscore-min.js"></script>
<script>
_.chain([9, 9, 9, 111, 5, 2, 5, 3, 4, 4, 5, 7])
.countBy()
.each( (val, key) => (val === 3) && (alert(key)))
</script>
|
без повтора и двойные, тройные, четверные ... в массиве
:)
<script>
var arr = [9, 9, 9, 111, 5, 2, 5, 3, 4, 4, 5, 7];
function foo(a, c) {
c--;
var d = {};
return a.filter(function(b, e, a) {
if (d[b]) return !1;
d[b] = !0;
for (var f = 0; ~(e = a.indexOf(b, ++e));) f++;
return f == c
})
};
document.write(JSON.stringify(foo(arr,1)) + "<br>")//без повтора
document.write(JSON.stringify(foo(arr,3)))// тройные дубликаты
</script>
|
рони,
Реальность такова, что мой вариант быстрее и красивее :D |
destus, да, но там нужно грузить библиотеку. А у меня вся программа на чистом JS.
|
Dilettante_Pro,
опухнет же массив count :-? destus, может и быстрее , но грузить библиотеку предварительно и конвертировать полученный результат. |
Цитата:
Цитата:
Underscore - вне закона и должна быть на каждом большом проекте :) |
Кто-нибудь знает, почему мой код не работает?
|
| Часовой пояс GMT +3, время: 09:14. |
|