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)