let gramAltin;
// Fetch ile veriyi çek
fetch('https://finans.truncgil.com/v3/today.json')
.then(response => response.json())
.then(data => {
// Veriden gram altın değerini al ve değişkene ata
gramAltin = data["gram-altin"]["buying"];
// Sonuçları ekrana yazdır
yazdirSonuclari(gramAltin);
})
.catch(error => console.error(error));
function yazdirSonuclari(gramAltin) {
console.log(gramAltin)
// Toplam alınan ve satılan gramı hesapla
let toplamAlinanGram = altinAlimlar.reduce((acc, curr) => acc + curr.gram, 0);
let toplamSatilanGram = altinSatislar.reduce((acc, curr) => acc + curr.gram, 0);
// Toplam alınan ve satılan tutarı hesapla
let toplamAlinanTutar = altinAlimlar.reduce((acc, curr) => acc + curr.gram * curr.fiyat, 0);
let toplamSatilanTutar = altinSatislar.reduce((acc, curr) => acc + curr.gram * curr.fiyat, 0);
// yardımcı fonksiyonlar
function toplaVeSayi(dizi) {
let toplam = 0;
let sayi = 0;
for (let i = 0; i < dizi.length; i++) {
toplam += dizi[i].fiyat * dizi[i].gram;
sayi += dizi[i].gram;
}
return { toplam, sayi };
}
function ortalamaFiyat(dizi) {
const { toplam, sayi } = toplaVeSayi(dizi);
return toplam / sayi;
}
// Ortalama alış ve satış fiyatlarını hesapla
let ortalamaAlisFiyati = ortalamaFiyat(altinAlimlar);
let ortalamaSatisFiyati = ortalamaFiyat(altinSatislar);
// Portföy hesaplamalar
let kalanGram = toplamAlinanGram - toplamSatilanGram;
let grKurDeger = kalanGram * gramAltin;
let karZarar = (ortalamaSatisFiyati) - (ortalamaAlisFiyati);
let netKarZarar = (grKurDeger + toplamSatilanTutar) - toplamAlinanTutar;
let kalanGramKar = gramAltin - ortalamaAlisFiyati;
// Sonucu ekrana yazdır
let guncelPortfoy = document.getElementById("guncelPortfoy");
guncelPortfoy.innerHTML = `
<h2 class="mt-5">Portföyum</h2>
<div class="card-group">
<div class="card border-secondary mb-3 col-4">
<div class="card-header">GÜNCEL KUR</div>
<div class="card-body text-secondary">
<h5 class="card-title">${gramAltin}₺</h5>
</div>
</div>
<div class="card border-secondary mb-3 col-4">
<div class="card-header">KASA DEĞERİ</div>
<div class="card-body text-secondary">
<h5 class="card-title">${grKurDeger.toFixed(2)}₺ (${kalanGram}gr)</h5>
</div>
</div>
<div class="card border-secondary mb-3 col-4">
<div class="card-header">KAR/ZARAR</div>
<div class="card-body text-secondary">
<h5 class="card-title">${netKarZarar.toFixed(2)}₺</h5>
</div>
</div>
</div>
<ul class="list-group">
<li class="list-group-item">Toplam Maliyet: ${toplamAlinanTutar.toFixed(2)}₺ (${toplamAlinanGram}gr)</li>
<li class="list-group-item">Toplam Satılan: ${toplamSatilanTutar.toFixed(2)}₺ (${toplamSatilanGram}gr)</li>
<li class="list-group-item">Ort. Alış: ${ortalamaAlisFiyati.toFixed(2)}₺ (${toplamAlinanGram}gr)</li>
<li class="list-group-item">Ort. Satış: ${ortalamaSatisFiyati.toFixed(2)}₺ (${toplamSatilanGram}gr)</li>
<li class="list-group-item">Kalan altın GR başı kar: ${kalanGramKar.toFixed(2)}₺</li>
</ul>
`;
} Fetch API ile JSON veri çekmek, hatayı nerede yapıyorum?
14
●346
- 21-03-2023, 15:54:27Aşağıdaki gibi bir kod yazdım. Burada altının değerini almak için Fetch API kullanıyorum fakat ne yaptıysam gramAltin değişkenine bu değeri atayamadım. Hatayı nerede yapıyorum yardımcı olabilecek var mı?
- 21-03-2023, 15:59:57undefined geliyor hocam, bu kısmı mı soruyorsunuz?Moonyazilim adlı üyeden alıntı: mesajı görüntüle
Bunu tam olarak nasıl yapabilirim acaba?jetz adlı üyeden alıntı: mesajı görüntüle - 21-03-2023, 16:03:19
fetch('https://finans.truncgil.com/v3/today.json') .then(response => response.json()) .then(data => { console.log(data); // Veriden gram altın değerini al ve değişkene ata //gramAltin = data["gram-altin"]["buying"]; // Sonuçları ekrana yazdır //yazdirSonuclari(gramAltin); });bu şekilde çalıştırıp çıktısını atabilir misiniz hocam? Muhtemelen problemşu kısımdaAlıntı - 21-03-2023, 16:04:31Belki şöyle çözülür:Xugart adlı üyeden alıntı: mesajı görüntüle
bunu
gramAltin = data["gram-altin"]["buying"];
bununla değiştirin:
gramAltin = data["gram-altin"]["Buying"];
- 21-03-2023, 16:05:52Xugart adlı üyeden alıntı: mesajı görüntüle
gramAltin = data["gram-altin"]["buying"]; /// Buying olacak ilk harf buyuk - 21-03-2023, 16:11:32https://stackblitz.com/edit/js-noswxa
18 ve 19. satırı kendim yazdım. Verdiğiniz kodda belirtmemişsiniz.
