Cara kembali dari foreach loop di javascript

Contoh 1

Memanggil fungsi untuk setiap elemen dalam buah

const buah = ["apel", "jeruk", "ceri"];
buah-buahan. forEach(myFunction);

Cobalah sendiri "


Definisi dan Penggunaan

Metode forEach()_ memanggil fungsi untuk setiap elemen dalam array

Metode forEach()_ tidak dieksekusi untuk elemen kosong


Sintaksis

Himpunan. forEach(function(currentValue, index, arr), thisValue)

Parameter

fungsi() Diperlukan
Fungsi untuk dijalankan untuk setiap elemen array. CurrentValueRequired
Nilai elemen saat ini. indexOptional
Indeks elemen saat ini. arrOptional
Array dari elemen saat ini. thisValueOptional. Bawaan undefined
Nilai yang diteruskan ke fungsi sebagai nilai this nya

Nilai Pengembalian



Lebih Banyak Contoh

Hitung jumlahnya

biarkan jumlah = 0;
angka const = [65, 44, 12, 4];
angka. forEach(myFunction);

function myFunction(item) {
jumlah += barang;
}

Cobalah sendiri "

Kalikan setiap elemen

angka const = [65, 44, 12, 4];
angka. forEach(myFunction)

function myFunction(item, index, arr) {
arr[indeks] = item * 10;
}

Cobalah sendiri "

Dukungan Peramban

forEach() adalah fitur ECMAScript5 (ES5).

ES5 (JavaScript 2009) didukung penuh di semua browser

ChromeEdgeFirefoxSafariOperaIEYaYaYaYa9-11

Tak perlu dikatakan bahwa mayoritas pengkodean berurusan dengan loop. Ada semua jenis loop dengan segala macam sintaks yang berbeda. Sangat menantang untuk memahami semuanya, tetapi bagian dari menjadi mahir dalam pemrograman adalah mengetahui sintaks apa yang digunakan, terutama bila ada banyak pilihan. Satu loop dalam javascript adalah forEach loop. Ini digunakan untuk mengulang array. Ini memberikan sintaksis yang bagus, tetapi masalah muncul saat kami mencoba sedikit lebih rumit, seperti keluar dari lingkaran. Mari pelajari cara keluar dari loop forEach di javascript.   

Daftar Isi

Cara Keluar dari forEach Loop di Javascript

Secara resmi, tidak ada cara yang tepat untuk keluar dari loop forEach di javascript. Menggunakan sintaks break yang sudah dikenal akan menimbulkan kesalahan. Jika memutus loop adalah sesuatu yang benar-benar Anda butuhkan, sebaiknya pertimbangkan untuk menggunakan loop tradisional.  

Mari kita lihat cuplikan kode berikut

let data = [
  {name: 'Rick'},{name: 'Steph'},{name: 'Bob'}
]

data.forEach(obj => {
  console.log(obj.name)
  if (obj.name === 'Steph') {
    break;
  }
})
      
        Copied  
        
          
        
      
    

Anda akan mengharapkan kode untuk berhenti mengeksekusi setelah menemukan nama "Steph";

Larutan

Seperti kebanyakan hal dalam pemrograman, tentu saja ada solusinya. Kita bisa membuang dan menangkap pengecualian saat mengulang array kita. Mari kita lihat bagaimana kita bisa mencapai ini.  

let data = [
  {name: 'Rick'},{name: 'Steph'},{name: 'Bob'}
]

try {
  data.forEach(obj => {
    console.log(obj.name)

    if (obj.name === 'Steph') {
      throw 'Break';
    }
  })
} catch (e) {
  if (e !== 'Break') throw e
}

      
        Copied  
        
          
        
      
    
_

Seperti yang Anda lihat di sini, kami menggabungkan pernyataan forEach kami dalam blok try catch. Saat kami biasanya melakukan istirahat, kami melakukan “lemparan ‘Istirahat’“

Kami kemudian melompat ke tangkapan kami dan memeriksa apa kesalahan kami. Jika itu selain "Break", kami membuangnya ke rantai kesalahan. Jika tidak, kami melanjutkan eksekusi kode kami.  

Meskipun solusi ini berhasil, itu tidak terlalu bersih. Mari kita lihat beberapa alternatif yang lebih baik

Alternatif #1. for…of loop (Diutamakan)

for…of loop akan menjadi solusi yang lebih disukai untuk masalah ini. Ini memberikan sintaks yang mudah dibaca dan juga memungkinkan kita menggunakan break sekali lagi.  

let data = [
    {name: 'Rick'},{name: 'Steph'},{name: 'Bob'}
  ]

for (let obj of data) {
  console.log(obj.name)
  if (obj.name === 'Steph') break;
}
      
        Copied  
        
          
        
      
    

Manfaat tambahan lainnya menggunakan for…of loop adalah kemampuan untuk melakukan operasi menunggu di dalamnya. Kami tidak akan dapat menggunakan sintaks menunggu dalam forEach loop

Alternatif #2. setiap

Kita juga bisa menggunakan prototipe array “every”. Mari kita lihat cuplikan kode itu

let data = [
    {name: 'Rick'},{name: 'Steph'},{name: 'Bob'}
  ]
  
data.every(obj => {
    console.log(obj.name)
    return !(obj.name === 'Steph')
})
      
        Copied  
        
          
        
      
    

Setiap prototipe akan menguji setiap elemen terhadap fungsi kita dan mengharapkan pengembalian boolean. Ketika nilai dikembalikan salah, loop akan rusak. Dalam hal ini, kami membalik tes nama kami dan mengembalikan salah ketika namanya sama dengan "Steph", loop terputus, dan kami melanjutkan kode kami.  

Alternatif #3. beberapa

Sangat mirip dengan setiap prototipe, kita juga dapat menggunakan prototipe array "beberapa". Beberapa prototipe hampir identik dengan setiap prototipe. Satu-satunya perbedaan adalah bahwa pengembalian yang sebenarnya akan memutus loop. Mari kita lihat kodenya.  

let data = [
    {name: 'Rick'},{name: 'Steph'},{name: 'Bob'}
  ]

data.some(obj => {
    console.log(obj.name)
    return (obj.name === 'Steph')
})
      
        Copied  
        
          
        
      
    
_

Anda dapat melihat bahwa fungsi mengembalikan nilai true ketika mencapai nama "Steph" dan menghentikan perulangan. Apakah Anda memilih beberapa atau setiap sepenuhnya bergantung pada apa yang menurut Anda paling mudah dibaca

Anda sekarang tahu cara keluar dari loop forEach di Javascript. Anda memiliki beberapa solusi alternatif dan juga solusi utama. Pilih opsi yang paling sesuai dengan kasus penggunaan Anda. Ingat, keterbacaan kode sangat penting, jadi pilihlah dengan bijak. Selamat Coding

Bagaimana cara mengembalikan nilai dari forEach loop di JavaScript?

Menggunakan pengurangan() .

Bagaimana cara keluar dari forEach loop di JavaScript?

Tidak ada cara untuk menghentikan atau menghentikan perulangan forEach() selain dengan melempar pengecualian .

Apa jenis pengembalian forEach loop dalam JavaScript?

Deskripsi. Metode forEach() adalah metode berulang. Itu memanggil fungsi callbackFn yang disediakan satu kali untuk setiap elemen dalam array dalam urutan indeks naik. Tidak seperti map() , forEach() selalu mengembalikan undefined dan tidak dapat dirantai.

Apakah kembali keluar untukEach?

Pernyataan pengembalian ini tidak keluar dari fungsi .