Çözüldü Javascript listelerde yapamadığım yer

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Akif9748

Hectopat
Katılım
19 Ocak 2020
Mesajlar
3.204
Makaleler
9
Çözümler
34
Yer
@Mai Sakurajima adamdır!
Node ile bir JSON dosyasına veri yazmaya çalışıyorum. Tek bir sıkıntım var.
Sağdaki değeri değişkenden yazarken soldaki değeri yazmıyor.
JavaScript:
var arabaadi = "GT 86"
var para = "300000"
student = {
     arabaadi : para
 
  };
  let data = JSON.stringify(student);


fs.writeFileSync('./util/carprice.json', data);
Sonuç:
{ "arabaadi" : "300000"}

Bu bu dilin bir özelliği sanırım. Ama Pythonda iki değer de değişken olabiliyordu.
Python:
    bilgi = input("İsim/eposta/şifre")
    bilgiler = bilgi.split("/")
  
    yazı = {
    bilgiler[0] : {
        "email" : bilgiler[1],
        "sifre" : bilgiler[2]
    }

    }
Tırnak içine yazmayınca değişken, içine yazınca ise direkt alıyordu böyle. Sonra da böyle yazıyordu:
JSON:
{

    "İsim" : {

        "email" :"eposta" ,

        "sifre" : "sifre"

    }
    }
Ben bunu yapmayı nasıl başarabilirim?
 
Çözüm
JavaScript obje içerisinde key tarafında doğrudan değişken kullanamıyorsun, fakat bunun bir yolu var. O da, objeyi ilk initialize ederken değil de (ilk tanımlarken), sonradan köşeli parantezler kullanarak alan set etmek. obje["key"] = "value" yapısı kullanıldığında, şu şekilde bir obje ortaya çıkıyor:
Örnek Obje:
{
    "key": "value"
}

Obje üzerinde köşeli parantez kullanarak objenin bir alanını alabilir veya set edebilirsin:
Get Örneği:
var arabalar = {
    "GT 86": 35000
};

arabalar["GT 86"]; // Sonuç: 35000
Set Örneği:
var arabalar = {
    "GT 86": 35000
};

arabalar["Z3"] = 30000;

/* Sonuç:
    {
        "GT 86": 35000,
        "Z3": 30000
    }
*/

Elbette string'e karşılık gelen değişkenleri kullanarak da objede bir alanı set edebilmek mümkün:
Değişken Kullanarak Alan Set Etmek:
var araba_adi = "GT-40";
var araba_fiyati = 30000;
var arabalar = {};

arabalar[araba_adi] = araba_fiyati;

/* Sonuç:
    {
        "GT-40": 30000
    }
*/

LastPlayer

Hectopat
Katılım
9 Temmuz 2019
Mesajlar
2.060
Makaleler
2
Çözümler
39
Yer
VSCode
pro:
yazilcak = {
    student : {
        arabafiyati : 5000,
        slm : "technopat"
    }
}

let veri = JSON.stringify(yazilcak);
Şeklinde olması gerekiyor.
 
KS
Akif9748

Akif9748

Hectopat
Katılım
19 Ocak 2020
Mesajlar
3.204
Makaleler
9
Çözümler
34
Yer
@Mai Sakurajima adamdır!
pro:
yazilcak = {
    student : {
        arabafiyati : 5000,
        slm : "technopat"
    }
}

let veri = JSON.Stringfy(yazilcak);
O student yazan yerin değişken olması gerekli bu seferde.
Ben db ile yapmaya başladım.
Amaç .json dosyasından sonradan verileri okuyabilmek. GT 86 dediğimde para değerini verebilmesi.
 

LastPlayer

Hectopat
Katılım
9 Temmuz 2019
Mesajlar
2.060
Makaleler
2
Çözümler
39
Yer
VSCode
O student yazan yerin değişken olması gerekli bu seferde.
Ben db ile yapmaya başladım.
Amaç .json dosyasından sonradan verileri okuyabilmek. GT 86 dediğimde para değerini verebilmesi.
pro:
let bubirstring = fs.// verinin olduğu json dosyası
let super = JSON.parse(bubirstring)
console.log(super["ARABAMARKASI"])
 

berk1937

Kilopat
Katılım
4 Ekim 2014
Mesajlar
2.280
Makaleler
1
Çözümler
34
Yer
Super Mario World
JavaScript obje içerisinde key tarafında doğrudan değişken kullanamıyorsun, fakat bunun bir yolu var. O da, objeyi ilk initialize ederken değil de (ilk tanımlarken), sonradan köşeli parantezler kullanarak alan set etmek. obje["key"] = "value" yapısı kullanıldığında, şu şekilde bir obje ortaya çıkıyor:
Örnek Obje:
{
    "key": "value"
}

Obje üzerinde köşeli parantez kullanarak objenin bir alanını alabilir veya set edebilirsin:
Get Örneği:
var arabalar = {
    "GT 86": 35000
};

arabalar["GT 86"]; // Sonuç: 35000
Set Örneği:
var arabalar = {
    "GT 86": 35000
};

arabalar["Z3"] = 30000;

/* Sonuç:
    {
        "GT 86": 35000,
        "Z3": 30000
    }
*/

Elbette string'e karşılık gelen değişkenleri kullanarak da objede bir alanı set edebilmek mümkün:
Değişken Kullanarak Alan Set Etmek:
var araba_adi = "GT-40";
var araba_fiyati = 30000;
var arabalar = {};

arabalar[araba_adi] = araba_fiyati;

/* Sonuç:
    {
        "GT-40": 30000
    }
*/
 
Çözüm
Yukarı