Sulit untuk judul apa yang saya maksud. Katakanlah ini aktif saat mengubah ukuran.

  for ( i = 10; i > 1; i--) { 
    console.log(i);
    if(inner>outer) {
      console.log('this' + i);
      inn.css('font-size', i+'0%')
    }
  }

Dan ketika kondisi terpenuhi, ia menggunakan nomor loop yang diperoleh untuk mengurangi ukuran fontnya, tetapi ia menggunakan nomor loop terakhir yaitu 2 yang mendapat 20%.

Apakah ada cara jika inner>outer menggunakan penurunan pertama 10, jika inner masih lebih besar gunakan 9, jika masih lebih besar 8 dll?

-1
MasterNone 13 Desember 2017, 18:09

1 menjawab

Jawaban Terbaik

Bagian ketiga dari pernyataan for() harus berupa ekspresi, dan pada akhirnya harus menyebabkan kondisi for Anda gagal atau Anda akan berada dalam infinite loop, tetapi sebaliknya tentu BISA lebih kompleks daripada operasi kenaikan atau penurunan sederhana. Misalnya, Anda dapat menggunakan panggilan fungsi di sana.

Yang mengatakan, ini akan menghasilkan kode yang sangat sulit dibaca bagi kebanyakan orang, karena sangat jarang menggunakan apa pun di sana kecuali incrementer dasar. Anda harus mempertimbangkan bentuk perulangan yang berbeda jika itu perilaku yang Anda inginkan; Anda mungkin bisa mendapatkan hasil yang Anda inginkan dengan cara yang lebih idiomatis/terbaca.

Tetapi jika Anda ingin menggunakan loop for, mungkin akan terlihat seperti ini:

for (var i=100; inner<=outer; i-=10) {
  inn.css('font-size', i+'%');
  // Some call here that updates 'inner' with the new size; unclear where you got that from originally
}

Kebanyakan orang mungkin akan menggunakan loop while untuk ini, tetapi loop for dapat bekerja selama nilai inner atau outer diubah oleh pernyataan blok sehingga loop akhirnya akan keluar.

1
S McCrohan 13 Desember 2017, 15:32