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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
116 changes: 89 additions & 27 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,32 @@ const { fifaData } = require('./fifa.js')

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

//(a) 2014 Dünya kupası Finali Evsahibi takım ismi (dizide "Home Team Name" anahtarı)
function arama(item) {
return (item["Year"] === 2014 && item.Stage === "Final")
}

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

//(c) 2014 Dünya kupası finali Ev sahibi takım golleri (dizide "Home Team Goals" anahtarı)
const final2014_v3 = fifaData.filter(item=> (item["Year"] === 2014 && item.Stage === "Final"));

//(d)2014 Dünya kupası finali Deplasman takım golleri (dizide "Away Team Goals" anahtarı)
console.clear();

//(a) 2014 Dünya kupası Finali Evsahibi takım ismi (dizide "Home Team Name" anahtarı)
console.log(final2014_v3[0]["Home Team Name"]);
//(b) 2014 Dünya kupası Finali Deplasman takım ismi (dizide "Away Team Name" anahtarı)
console.log(final2014_v3[0]["Away Team Name"]);
//(c) 2014 Dünya kupası finali Ev sahibi takım golleri (dizide "Home Team Goals" anahtarı)
console.log(final2014_v3[0]["Home Team Goals"]);
//(d)2014 Dünya kupası finali Deplasman takım golleri (dizide "Away Team Goals" anahtarı)
console.log(final2014_v3[0]["Away Team Goals"]);
//(e) 2014 Dünya kupası finali kazananı*/
if (final2014_v3[0]["Home Team Goals"] > final2014_v3[0]["Away Team Goals"]){
console.log("Kazanan" + final2014_v3[0]["Home Team Name"])
} else {
console.log("Kazanan" + final2014_v3[0]["Away Team Name"])
}


/* Görev 2:
Expand All @@ -25,10 +42,15 @@ const { fifaData } = require('./fifa.js')
💡 İPUCU - verilen data içindeki nesnelerin(objects) "Stage" anahtarına bakmalısınız
*/

function Finaller(/* kodlar buraya */) {
function Finaller(arr) {

let finaller = arr.filter((item)=>{
return item.Stage === "Final";
})

/* kodlar buraya */
return finaller;
}
console.log(Finaller(fifaData));



Expand All @@ -39,11 +61,16 @@ 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(array, callback) {
const finaller = callback(array);
const yillar = finaller.map(element=>{
return element.Year;
})
return yillar;
}

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


/* Görev 4:
Bir higher-order fonksiyonunu olan Kazananlar isimli fonksiyona aşağıdakileri uygulayın:
Expand All @@ -53,12 +80,21 @@ function Yillar(/* kodlar buraya */) {
💡 İ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 */

function Kazananlar(data, callback) {
const finaller = callback(data);
let kazananlar = [];
for(let i = 0; i < finaller.length; i++) {
if(finaller[i]["Home Team Goals"] < finaller[i]["Away Team Goals"]){
kazananlar.push(finaller[i]["Away Team Name"])
} else {
kazananlar.push(finaller[i]["Home Team Name"])
}
}
return kazananlar;
}

console.log(Kazananlar(fifaData, Finaller))



/* Görev 5:
Expand All @@ -72,12 +108,18 @@ 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(data, cb_finaller, cb_yillar, cb_kazananlar) {
let arr = [];
let yillar = cb_yillar(data, cb_finaller);
let kazananlar = cb_kazananlar(data, cb_finaller);
kazananlar.forEach((item, i)=> {
arr.push(`${yillar[i]} yılında, ${item} dünya kupasını kazandı!`);
})
return arr;
}

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,13 +135,13 @@ function YillaraGoreKazananlar(/* kodlar buraya */) {

*/

function OrtalamaGolSayisi(/* kodlar buraya */) {

/* kodlar buraya */

function OrtalamaGolSayisi(arr) {
let toplamgol = arr.reduce((total, item)=>{
return total + item["Home Team Goals"] + item["Away Team Goals"];},0)
return(toplamgol / arr.length).toFixed(2);
}


console.log(OrtalamaGolSayisi(Finaller(fifaData)));

/// EKSTRA ÇALIŞMALAR ///

Expand All @@ -109,12 +151,32 @@ function OrtalamaGolSayisi(/* kodlar buraya */) {
İpucu: "takım kısaltmaları" (team initials) için datada araştırma yapın!
İpucu: `.reduce` Kullanın*/

function UlkelerinKazanmaSayilari(/* kodlar buraya */) {

/* kodlar buraya */

let initials = [];
let kazananTakimlar = {};
Finaller(fifaData).forEach(i => {
if(!initials.includes(i["Home Team Initials"])){
initials.push(i["Home Team Initials"]);
kazananTakimlar[i["Home Team Initials"]] = 0;
}
if(!initials.includes(i["Away Team Initials"])){
initials.push(i["Away Team Initials"]);
kazananTakimlar[i["Away Team Initials"]] = 0;
}
})
console.log(initials)
console.log(kazananTakimlar)

function UlkelerinKazanmaSayilari(data){
Finaller(data).forEach((i) => {
if(i["Home Team Goals"] > i["Away Team Goals"]){
kazananTakimlar[["Home Team Initials"]]++
} else {
kazananTakimlar[i["Away Team Initials"]]++
}
})
}

UlkelerinKazanmaSayilari(fifaData);
console.log(kazananTakimlar);


/* BONUS 2:
Expand Down
12 changes: 12 additions & 0 deletions node_modules/.bin/acorn

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions node_modules/.bin/acorn.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions node_modules/.bin/acorn.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions node_modules/.bin/browserslist

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions node_modules/.bin/browserslist-lint

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions node_modules/.bin/browserslist-lint.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions node_modules/.bin/browserslist-lint.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions node_modules/.bin/browserslist.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions node_modules/.bin/browserslist.ps1

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions node_modules/.bin/escodegen

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions node_modules/.bin/escodegen.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading