среда, 21 октября 2009 г.

Удаления дубликатов из массива на actionscript 3

Наткнулся в интернете на код на actionscript 3, позволяющий удалять повторяющиеся значений из массива (код удаляет все найденные дубликаты, трипликаты и тд).
Код полезен и интересен тем, что показывается использование довольно новой функции array.some(), но недостатком является то, что не зная эту функцию сложно понять его работу. Этот же код можно переписать более просто и понятно.

Смысл работы прост - проверяем в цикле есть ли уже такое значение в нашем новом массиве, и если нет добавляем.

Код для удаления дубликатов из массива на actionscript3 для flash

package
{
  import flash.display.Sprite;

  /**
   * ...
   * @author andrew
   */

  public class Test extends Sprite
  {
    public function Test()
    {
      var originalArray:Array = new Array("yellow", "red", "blue", "red", "yellow", "green", "yellow", "purple", "ginger", "red", "blue");
      var dedupedArray:Array = new Array();

      function ArrayProcess()
      {
        for each (var item:String in originalArray)
        {
          if (dedupedArray.indexOf(item)===-1)
          {
            dedupedArray.push(item);
          }
        }
        trace("dedupedArray: "+dedupedArray);
      }

      ArrayProcess();
    }
  }
}

1 комментарий: