• 21-03-2023, 15:54:27
    #1
    Aş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ı?

            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>
                `;
            }
  • 21-03-2023, 15:55:45
    #2
    Aldığınız çıktı nedir hocam?
  • 21-03-2023, 15:56:06
    #3
    data.data şeklinde alın veriyi. Fetch, gelen yanıtı response.data objesine atar.
  • 21-03-2023, 15:59:57
    #4
    Moonyazilim adlı üyeden alıntı: mesajı görüntüle
    Aldığınız çıktı nedir hocam?
    undefined geliyor hocam, bu kısmı mı soruyorsunuz?
    jetz adlı üyeden alıntı: mesajı görüntüle
    data.data şeklinde alın veriyi. Fetch, gelen yanıtı response.data objesine atar.
    Bunu tam olarak nasıl yapabilirim acaba?
  • 21-03-2023, 16:00:04
    #5
    GPT-4'e sordum şöyle bir cevap verdi, denemek istersen diye mesajı aşağıya bırakıyorum




  • 21-03-2023, 16:03:19
    #6
    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
    Alıntı
    gramAltin = data["gram-altin"]["buying"];
    şu kısımda
  • 21-03-2023, 16:04:31
    #7
    Xugart adlı üyeden alıntı: mesajı görüntüle
    Aş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ı?

            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>
                `;
            }
    Belki şöyle çözülür:

    bunu
         gramAltin = data["gram-altin"]["buying"];
    bununla değiştirin:
         gramAltin = data["gram-altin"]["Buying"];
  • 21-03-2023, 16:05:52
    #8
    Xugart adlı üyeden alıntı: mesajı görüntüle
    Aş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ı?

            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>
                `;
            }

    gramAltin = data["gram-altin"]["buying"]; /// Buying olacak ilk harf buyuk
  • 21-03-2023, 16:11:32
    #9
    https://stackblitz.com/edit/js-noswxa

    18 ve 19. satırı kendim yazdım. Verdiğiniz kodda belirtmemişsiniz.