|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2013
Сообщений: 21
|
Сколько раз элемент повторяется в массиве.
Всем привет. У меня есть массив в котором лежат id из вконтакта вообщем это не важно. Важно то что в массиве есть повторяющиеся id нужно узнать сколько раз повторяется id в массиве я делаю так
for(var k:Number=0;k<allIdFriends.length;k++) { topStar.push(0); // массив в котором находятся сколько раз повторялся id } for(var i:Number = 0;i<allIdFriends.length;i++) { for(var j:Number = 0;j<allIdFriends.length;j++) { if(allIdFriends[i]==allIdFriends[j]) { topStar[i] = topStar[i]+1; allIdFriends.splice(j,1); } } } |
|
|||||
Регистрация: Nov 2009
Адрес: 59°57′ с. ш. 30°19′ в. д.
Сообщений: 17
|
var idArray:Array = [065161555,06599789,56481100,56899200,48889884,06599789,849944441,06599789,065161555]; var idCountersArray:Array = []; var i:int = idArray.length; while (i--) idCountersArray.push(0); for (var j:int = 0; j<idArray.length; j++) { for (var q:int = idArray.length-1; q>j; q--) { if (idArray[j] == idArray[q]) { idCountersArray[j]++; idArray.splice(q, 1); idCountersArray.splice(q, 1); } } } trace(idArray); trace(idCountersArray); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
После удаления элемента с индексом j элемент, который был за ним (j + 1) становится элементом с индексом j. А цикл переходит на следующую итерацию j + 1. Таким образом элемент и проскакивает — когда два или больше одинаковых id оказываются рядом. Нужно после каждого сплайса возвращать итератор на единицу назад, то есть делать j--.
Рассмотрите так же, что происходит с итератором цикла i. И Вас не пугает, что в какой-то из проверок Вы уничтожите сам образец (i==j) и замените его следующим элементом?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jul 2013
Сообщений: 21
|
Цитата:
вот так я их вывожу: id - сколько раз повторяется вот часть 29196347101 - 5 - что за id такой откуда он взялся?? 198420044 - 0 - и почему здесь нули?? 100192424 - 74 196992613 - 9 101949783 - 79 217388209 - 0 34807332 - 1 178105535 - 1 |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Технически я конечно могу переслать Ваши вопросы в "Битву экстрасенсов", но, думаю, будет лучше, если Вы сами им напишите?
А мы тут обсуждаем ActionScript 3.0. Не вижу в Вашем сообщении предмета для обсуждения. Где код?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
|
Часовой пояс GMT +4, время: 05:47. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|