flash as3 лучший способ создания многомерного массива - PullRequest
0 голосов
/ 14 мая 2011

У меня есть массив видеоклипов (представляющих участников группы), которые имеют различные свойства, среди них есть свойство, которое сообщает, куда вошел участник группы после того, как он покинул свою текущую группу.Для тех, кто сформировал новую группу, я хочу создать массив.В этом массиве я хочу сгруппировать все те, которые остались для той же группы, во вторичные массивы.Итак, если у вас было пять участников группы и 2 из них ушли в группу X и 3 ушли в группу Y. Какой лучший способ сделать это?Это, примерно, мой код:

var newGroupArr:Array = new Array() //this will hold all members leaving for a new group

for (k=0;k<memberClips.length;k++){
    if (memberClips[k].outcome == "new"){
        //for all groups where memberClips[k].group is the same, create a new array within newGroupArr for those similar members.
    }
}

В качестве альтернативы, я полагаю, если бы я мог обойтись без многомерного массива и просто перебрать все члены и сказать - для тех членов, группа которых одинакова, выполнить эту функциюс именем той же группы, переданной в качестве параметра для функции.Полагаю, проблема в том, чтобы определить, кто такой же.

This illustration shows the problem I'm having - if John Wetton is clicked, a line should be drawn only for him. But instead, a line is drawn for both he, david cross, and bill bruford, because they are all leaving for a new group. But david cross and bill bruford are actually going to a different group than john, so I need to make sure they are stored as members leaving for a new group, but I also need them grouped by the new band they are leaving for.

Ответы [ 2 ]

1 голос
/ 14 мая 2011

Если нет причины, по которой вам нужно для использования массива, я бы использовал словарь, например

var bands:Dicionary = new Dictionary();

for (k=0;k<memberClips.length;k++){
    if(memberClips[k].outcome=="new"){
        var newGroup:String = memberClips[k].group;
        if(!bands[newGroup]){
           bands[newGroup] = new Array();
        }
        bands[newGroup].push(k);
    }
}

Теперь каждый массив в группах будет содержать членов, которые покинули свою предыдущую группу

0 голосов
/ 14 мая 2011
...