Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
155 changes: 93 additions & 62 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
const { fifaData } = require('./fifa.js')

const { fifaData } = require("./fifa.js");

/* Görev 1:
Verilen datayı parçalayarak aşağıdaki verileri (console.log-ing) elde ederek pratik yapın.

💡 İPUCU: Öncelikle datayı filtrelemek isteyebilirsiniz */

//(a) 2014 Dünya kupası Finali Evsahibi takım ismi (dizide "Home Team Name" anahtarı)

const evSahibi = fifaData.filter((mac) => {
return mac["Year"] === 2014 && mac["Stage"] === "Final";
});
console.log(evSahibi[0]["Home Team Name"]);
//(b) 2014 Dünya kupası Finali Deplasman takım ismi (dizide "Away Team Name" anahtarı)

console.log(evSahibi[0]["Away Team Name"]);
//(c) 2014 Dünya kupası finali Ev sahibi takım golleri (dizide "Home Team Goals" anahtarı)

console.log(evSahibi[0]["Home Team Goals"]);
//(d)2014 Dünya kupası finali Deplasman takım golleri (dizide "Away Team Goals" anahtarı)

console.log(evSahibi[0]["Away Team Goals"]);
//(e) 2014 Dünya kupası finali kazananı*/


if (evSahibi[0]["Home Team Name"] > evSahibi[0]["Away Team Goals"]) {
console.log(evSahibi[0]["Home Team Name"]);
} else if (evSahibi[0]["Home Team Name"] < evSahibi[0]["Away Team Goals"]) {
console.log(evSahibi[0]["Away Team Name"]);
} else {
const kazananTakim = evSahibi[0]["Win conditions"].split(" win "); //split ile berabere kalan takımlarda uzatmalarda kim kazandı bulmak için metni win den önce ve sonra olmak üzere 2 ye ayırdık. yeni bir array'e atadığı için console.log yaparken [0] kullandık.
console.log(kazananTakim[0]);
//kazananTakim diye yeni değişken atamadan console.log(evSahibi[0]["Win conditions"].split(" win ")[0])şeklinde de yazabiliriz. sonuçta parantez içindeki de bir array.
}
/* Görev 2:
Finaller adlı fonksiyonu kullanarak aşağıdakileri uygulayın:
1. Bir dizi(array) olan Fifa datasını fonksiyonun birinci parametresi olarak alacak
Expand All @@ -25,12 +34,11 @@ const { fifaData } = require('./fifa.js')
💡 İPUCU - verilen data içindeki nesnelerin(objects) "Stage" anahtarına bakmalısınız
*/

function Finaller(/* kodlar buraya */) {
/* kodlar buraya */
function Finaller(gelenDizi) {
const final = gelenDizi.filter((sonuc) => sonuc["Stage"] === "Final");
return final;
}


console.log(Finaller(fifaData));

/* Görev 3:
Bir higher-order fonksiyonu olan Yillar isimli fonksiyona aşağıdakileri uygulayın:
Expand All @@ -39,27 +47,36 @@ function Finaller(/* kodlar buraya */) {
3. Finaller data setindeki tüm yılları içeren "years" adındaki diziyi(array) döndürecek
*/

function Yillar(/* kodlar buraya */) {

/* kodlar buraya */
function Yillar(gelenDizi, callbackFunction) {
const final = callbackFunction(gelenDizi); // yukarıda oluşturuduğumuz final array ini çağırdık. callback fonksiyonunu gelenDizi datası için kullanacağız.
const finalYili = final.map((mac) => mac["Year"]);
return finalYili;
}


console.log(Yillar(fifaData, Finaller));
/* Görev 4:
Bir higher-order fonksiyonunu olan Kazananlar isimli fonksiyona aşağıdakileri uygulayın:
1. fifaData dizisini(array) fonksiyonunun birinci parametresi olarak alacak
2. Görev 2'de yazdığınız Finaller fonksiyonunu, geriçağırım(callback) olarak fonksiyonun ikinci parametresi olarak alacak
3. Her final maçının kazananını (evsahibi ya da deplasman) belirleyecek
💡 İPUCU: Beraberlikler(ties) için şimdilik endişelenmeyin (Detaylı bilgi için README dosyasına bakabilirsiniz.)
4. Tüm kazanan ülkelerin isimlerini içeren `kazananlar` adında bir dizi(array) döndürecek(return) */

function Kazananlar(/* kodlar buraya */) {

/* kodlar buraya */

4. Tüm kazanan ülkelerin isimlerini içeren `kazananlar` adında bir dizi(array) döndürecek(return) */

function Kazananlar(gelenDizi, callbackFunction) {
const final = callbackFunction(gelenDizi);
const kazananlarList = [];
for (let i = 0; i < final.length; i++) {
if (final[i]["Home Team Goals"] > final[i]["Away Team Goals"]) {
kazananlarList.push(final[i]["Home Team Name"]);
} else if (final[i]["Home Team Goals"] < final[i]["Away Team Goals"]) {
kazananlarList.push(final[i]["Away Team Name"]);
} else {
let winArr = final[i]["Win conditions"].split(" win ");
kazananlarList.push(winArr[0]);
}
}
return kazananlarList;
}


console.log(Kazananlar(fifaData, Finaller));

/* Görev 5:
Bir higher-order fonksiyonu olan YillaraGoreKazananlar isimli fonksiyona aşağıdakileri uygulayın:
Expand All @@ -72,12 +89,36 @@ function Kazananlar(/* kodlar buraya */) {
💡 İPUCU: her cümlenin adım 4'te belirtilen cümleyle birebir aynı olması gerekmektedir.
*/

function YillaraGoreKazananlar(/* kodlar buraya */) {

/* kodlar buraya */

function YillaraGoreKazananlar(
gelenDizi,
callbackFinaller,
callbackYillar,
callbackKazananlar
) {
// let kazananlarListesi = callbackFinaller(gelenDizi).map((mac, i) => {
// return (
// callbackYillar(gelenDizi, callbackFinaller)[i] +
// " yılında, " +
// callbackKazananlar(gelenDizi, callbackFinaller)[i] +
// " dünya kupasını kazandı!"
// );
// });
// return kazananlarListesi;
let final = callbackFinaller(gelenDizi);
let kazananlarList = callbackKazananlar(gelenDizi, callbackFinaller);
let finalYili = callbackYillar(gelenDizi, callbackFinaller);
let yillaraGöreKazan = final.map((mac, i) => {
return (
finalYili[i] +
" yılında, " +
kazananlarList[i] +
" dünya kupasını kazandı!"
);
});
return yillaraGöreKazan;
}

console.log(YillaraGoreKazananlar(fifaData, Finaller, Yillar, Kazananlar));
//console.log(YillaraGoreKazananlar(fifaData, Finaller, Yillar, Kazananlar));

/* Görev 6:
Bir higher order fonksiyonu olan `OrtalamaGolSayisi` isimli fonksiyona aşağıdakileri uygulayın:
Expand All @@ -93,14 +134,15 @@ function YillaraGoreKazananlar(/* kodlar buraya */) {

*/

function OrtalamaGolSayisi(/* kodlar buraya */) {

/* kodlar buraya */

function OrtalamaGolSayisi(finaller) {
const ortalamaGol = finaller.reduce(
(total, match) =>
total + match["Home Team Goals"] + match["Away Team Goals"],
0
);
return (ortalamaGol / finaller.length).toFixed(2); //toFixed noktadan sonra 2 basamak alıyor.
}



console.log(OrtalamaGolSayisi(Finaller(fifaData)));
/// EKSTRA ÇALIŞMALAR ///

/* BONUS 1:
Expand All @@ -110,47 +152,36 @@ function OrtalamaGolSayisi(/* kodlar buraya */) {
İpucu: `.reduce` Kullanın*/

function UlkelerinKazanmaSayilari(/* kodlar buraya */) {

/* kodlar buraya */

/* kodlar buraya */
}



/* BONUS 2:
EnCokGolAtan() isminde bir fonksiyon yazın, `data` yı parametre olarak alsın ve Dünya kupası finallerinde en çok gol atan takımı döndürsün */

function EnCokGolAtan(/* kodlar buraya */) {

/* kodlar buraya */

/* kodlar buraya */
}


/* BONUS 3:
EnKotuDefans() adında bir fonksiyon yazın, `data` yı parametre olarak alsın ve Dünya kupasında finallerinde en çok golü yiyen takımı döndürsün*/

function EnKotuDefans(/* kodlar buraya */) {

/* kodlar buraya */

/* kodlar buraya */
}


/* Hala vaktiniz varsa, README dosyasında listelenen hedeflerden istediğinizi aşağıdaki boşluğa yazabilirsiniz. */


/* Bu satırın aşağısındaki kodları lütfen değiştirmeyin */
function sa(){
console.log('Kodlar çalışıyor');
return 'as';
function sa() {
console.log("Kodlar çalışıyor");
return "as";
}
sa();
module.exports = {
sa,
Finaller,
Yillar,
Kazananlar,
YillaraGoreKazananlar,
OrtalamaGolSayisi
}
sa,
Finaller,
Yillar,
Kazananlar,
YillaraGoreKazananlar,
OrtalamaGolSayisi,
};
Loading