var asyncMap = function(arr, fn, endFn) { var i = 0, len = arr.length, res = []; (function callee() { fn(arr[i], i, function(singleRes) { res.push(singleRes); if (++i < len) { callee(); } else { endFn(res); } }, arr); })(); };prosty przykład użycia: http://jsfiddle.net/gkucmierz/QzLP5/
Pokazywanie postów oznaczonych etykietą Array. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Array. Pokaż wszystkie posty
środa, 22 stycznia 2014
asyncMap - asynchroniczne iterowanie po tablicy
Funkcja pozwalająca na iterację po tablicy w sposób asynchroniczny. Można dzięki niej w genialnie prosty sposób wykonać np. kolejkę zadań, które wymagają wykonania asynchronicznych akcji np. zapytanie do innego serwera.
sobota, 3 marca 2012
Array unique - czyli pozbywamy się duplikatów
Funkcja jako argument przyjmuje tablicę z danymi dowolnego typu. W rezultacie funkcja zwraca tablicę zawierającą tylko unikalne elementy tablicy źródłowej.
var unique = function(arr){ return arr.filter(function(el, i){ return arr.indexOf(el, i+1) === -1; }); };Poniżej zamieszczam funkcję robiącą to samo co powyższa funkcja z drobnym wyjątkiem. Poniższa funkcja zawiera dwa dodatkowe wykonania funkcji reverse co pozwoliło na zachowanie naturalnej kolejności elementów występujących w tablicy. Pierwsze wystąpienie danego elementu pozostaje w tym samym miejscu, kolejne wystąpienia tego samego elementu są ignorowane. W poprzedniej wersji funkcji to ostatni element zostałby zachowany.
var unique = function(arr){ return arr.reverse().filter(function(el, i){ return arr.indexOf(el, i+1) === -1; }).reverse(); };
let unique = [...new Set(myArray)];
sobota, 11 lutego 2012
Array shuffle
Implementacja funkcji mieszającej elementy tablicy w języku JavaScript.
Array.prototype.shuffle = function(){ return this.sort(function(){ return Math.random() - 0.5; }); };Przykład użycia:
[1, 2, 3].shuffle();Poniżej inna implementacja bez użycia prototypów.
var shuffle = function(arr){ return arr.sort(function(){ return Math.random() - 0.5; }); };
Subskrybuj:
Posty (Atom)