Как удалить повторяющиеся значения из массива в as3? Скажем, если у меня есть массив = [1,1,2,2,4,5] Я хотел бы иметь результат в виде массива = [1,2,4,5]Как удалить повторяющиеся значения в массиве flex?
ответ
var a:Array = ["Tom", "John", "Susan", "Marie", "Tom", "John", "Tom", "Eva"];
a.sort();
var i:int = 0;
while(i < a.length) {
while(i < a.length+1 && a[i] == a[i+1]) {
a.splice(i, 1);
}
i++;
}
Как можно видел here
Попробуйте что-то вроде:
var array:Array = [1,1,2,2,4,5];
trace(array);
trace(removeDuplicates(array));
function removeDuplicates(inArray:Array):Array
{
return inArray.filter(removeDuplicatesFilter);
}
function removeDuplicatesFilter(e:*, i:int, inArray:Array):Boolean
{
return (i == 0) ? true : inArray.lastIndexOf(e, i - 1) == -1;
}
Кроме того, я рекомендую вам создать класс, и реализовать их как статические методы, что-то вроде.
public class ArrayUtils
{
public static function removeDuplicates(inArray:Array):Array
{
return inArray.filter(_removeDuplicatesFilter);
}
protected static function _removeDuplicatesFilter(e:*, i:int, inArray:Array):Boolean
{
return (i == 0) ? true : inArray.lastIndexOf(e, i - 1) == -1;
}
}
использовать также как:
var array:Array = [1,1,2,2,4,5];
trace(ArrayUtils.removeDuplicates(array));
Спасибо это выглядит лаконичным, а не с помощью каких-либо словарь классов. –
@ashok_khuman Добро пожаловать! Надежды можно было как-то помочь. – gabriel
использования Underscore.as!
https://github.com/amacdougall/underscore.as
import com.amacdougall.underscore.*;
_.uniq([1,1,2,2,4,5);
// 1,2,4,5
Спасибо за этот вариант –
Другой вариант заключается в использовании хэш-карты/Dictionary так:
import flash.utils.Dictionary;
var a:Array = ["Tom", "John", "Susan", "Marie", "Tom", "John", "Tom", "Eva"];
var b:Dictionary = new Dictionary(true);//has map/cannot have duplicate keys
var c:Array = [];//filtered/unique entries array
for(var i:int = 0; i < a.length; i++) b[a[i]] = i;//hash array entries
for(var key:String in b) c.push(key);//put them back into an array
b = null;//clear/release the hash map
trace(c);//traces: Tom Eva John Susan Marie
Спасибо за предложение использовать класс словаря. –
private function removeDuplicatesInCollection(collection:ArrayCollection):Array{
var dic:Dictionary = new Dictionary();
for each (var item:MyObject in collection){
var key: Object = new Object();
key.network = item.network;
key.day = item.day;
key.date = item.date;
key.time =item.time;
key.cost = item.cost;
dic[JSON.stringify(key)] = item ;
}
return DictionaryUtil.getValues(dic) ;
}
- 1. Как удалить повторяющиеся значения в массиве?
- 2. Как удалить повторяющиеся значения в массиве actionscript3
- 3. Удалить повторяющиеся значения в php-массиве
- 4. удалить повторяющиеся строки в массиве
- 5. Как удалить повторяющиеся значения в массиве с помощью Smarty
- 6. Как удалить частичные повторяющиеся значения в массиве JQuery
- 7. Как удалить повторяющиеся значения для определенного ключа в многомерном массиве?
- 8. Подсчитайте повторяющиеся значения в массиве
- 9. Как удалить повторяющиеся данные в массиве?
- 10. Как удалить повторяющиеся элементы в многомерном массиве?
- 11. Возвращает повторяющиеся значения в массиве в Javascript
- 12. Как получить повторяющиеся значения в массиве?
- 13. Как обнаружить повторяющиеся значения в массиве PHP?
- 14. PostgresSQL как удалить повторяющиеся значения
- 15. Удалить повторяющиеся элементы в массиве, которые имеют запятых отделяя значения
- 16. как удалить повторяющиеся значения arraylist
- 17. Удалить повторяющиеся значения
- 18. Удалить повторяющиеся значения
- 19. Удалить все повторяющиеся значения
- 20. Python удалить повторяющиеся значения
- 21. Удалить повторяющиеся значения массиву
- 22. Как удалить повторяющиеся значения из массива
- 23. Удалить повторяющиеся значения в MongoDB
- 24. удалить повторяющиеся значения в foreach
- 25. Удалить значения в массиве
- 26. Удалить повторяющиеся строки в строковом массиве
- 27. Как удалить повторяющиеся значения в HashSet
- 28. как удалить повторяющиеся значения в hashmap
- 29. Как удалить повторяющиеся значения в PHP?
- 30. Как удалить повторяющиеся значения в двух массивах?
Благодаря этой опции –