var RandomUser = (() => {
var userList = [];
function getUser() {
return userList;
}
function addUser(data) {
let user = {};
user.first = data.name.first;
user.last = data.name.last;
user.born = Number(data.dob.split("-")[0]);
user.died = Number(data.registered.split("-")[0]);
userList.push(user);
}
function init(opts) {
$.ajax({
url: "https://randomuser.me/api",
dataType: "json",
data: {
results: opts.items
},
success: (data) => {
for (let i = 0; i < data.results.length; i++) {
addUser(data.results[i]);
}
}
})
}
return {
init: init,
getUser: getUser,
addUser: addUser
};
})()
RandomUser.init({
items: 15
});
var investor = RandomUser.getUser();
console.log(investor);
var filtered = investor.filter((user) => (user.born >= 1900 && user.born <= 1960));
console.log(filtered);
Mam taki oto prosty kod, pobieram dane ze strony generującej losowe dane, przebieram sobie dane które potrzebuje i trzymam w "fabryce"? Ogólnie rzecz biorąc to ćwiczę wzorce projektowe więc i samo pobieranie danych losowych chciałem ułatwić i sprowadzić do jednej funkcji czyli po przez podanie jednego parametru do funkcji ograniczyć ilość danych pobieranych z zewnętrznej strony, czyli coś na zasadzie "facade"? dosyć prostej. Generalnie mam problem z danymi które filtruje, otóż napisałem sobie filtr który ma zwracać tablice obiektów, które mieszczą się w określonym tam przedziale.
Niestety mi to nie działa, nawet gdy w mojej callbackFn zwrócę samo true to i tak te dane nie są zwracane. Nie wiem, myślałem, że nie jestem, aż tak głupi na to ale mnie to trochę przerosło. Podejrzewam że to problem z moimi danymi które są pobierane z zewnętrznego źródła i przechowywane w tej fabryce jeśli tak to można nazwać, ale przecież później sobie zwracam to do już do zmiennej spoza tej fabryki i wyświetla to poprawnie, ale cóż po moim filtrze brakuje danych zwracanych.
Jeśli ktoś jest obeznany to proszę o poświęcenie paru chwil i ewentualnie nakreśleniu większych błędów jakie robie.
**Edit1 **
Sprawdziłem co wyskoczy dla investor[0] i mam undefined, pytanie dlaczego?