Rumah  >  Soal Jawab  >  teks badan

Kebocoran memori berlaku apabila menukar nilai yang menunjukkan indeks dalam harta yang dikira

Saya mempunyai masalah dengan harta pengiraan saya

correctAnswersForCurrentStage(): object {return 
    return this.correctAnswers[this.currentLevel] ?? {};
},

Beberapa latar belakang: ini.CorrectAnswers ialah objek di mana sifatnya ialah tahap dan nilainya ialah objek untuk setiap pintu:

this.correctAnswers = {
     "1": {
        "1": 15,
        "2": 25,
        "3": 35,
        "4": 45
    },
    "2": {
        "1": 15,
        "2": 25,
        "3": 35,
        "4": 45
    },
}

Jadi apabila tahap selesai, saya akan menambah lebih banyak tahap

this.currentLevel++

Semuanya akan disekat selepas ini. Saya tidak tahu sama ada Vue atau TypeScript yang menyebabkan masalah ini. Atau mungkin gabungan kedua-duanya? Adakah sesiapa tahu mengapa ini berlaku?

Saya cuba mematikan peningkatan tahap dan kemudian tiada masalah. Jelas sekali saya telah kekal pada tahap yang sama. Tetapi logik set semula lain berfungsi

Susulan:

Saya masih mengalami masalah yang sama apabila saya menukarnya supaya ia tidak perlu menggunakan indeks, kini saya telah melakukannya:

correctAnswersForCurrentStage(): object {
    if (this.currentLevel === 1) {
        return this.correctAnswersForLevel1;
    }
    if (this.currentLevel === 2) {
        return this.correctAnswersForLevel2;
    }
    if (this.currentLevel === 3) {
        return this.correctAnswersForLevel3;
    }
    if (this.currentLevel === 4) {
        return this.correctAnswersForLevel4;
    }
    return {};
},

P粉786432579P粉786432579404 hari yang lalu571

membalas semua(1)saya akan balas

  • P粉191610580

    P粉1916105802023-09-11 14:18:26

    Sukar untuk mengetahui dengan kod yang disediakan pada masa ini, tetapi saya mengesyaki this. CorrectAnswersForLevel1 dan lain-lain juga merupakan sifat yang dikira. Ini bermakna anda mendapat rujukan bulat, menghasilkan gelung tak terhingga.

    Selain itu, kod itu juga mengandungi rujukan yang salah: this. CorrectAnswers['1']this. CorrectAnswers[1] Berbeza kerana membandingkan rentetan dan nombor antara satu sama lain.

    balas
    0
  • Batalbalas