TypeError: object.forEach, JavaScript'te Bir İşlev Değil

Typeerror Object Foreach Javascript Te Bir Islev Degil



JavaScript'te ' her biri için() ” yöntemi, her dizi öğesi için belirli bir işlevi bir kez yürütür. forEach() yöntemi, her Array, Set veya Map öğesinde kullanılır. Bu yöntemi başka bir türde kullanmaya çalışırsanız, bir hata verir ' object.forEach, JavaScript'te bir işlev değildir ”. Bu nedenle, onu dizilerde, haritalarda veya kümelerde kullanın veya değerleri bu türlere dönüştürün ve ardından bu yöntemi onlara uygulayın.

Bu makale, söz konusu hatayı ve olası çözümlerini tanımlayacaktır.

“TypeError: object.forEach is not a function in JavaScript” Hatası Nasıl Oluşur?

Dizi, Harita veya Küme olmayan bir değer kullanıldığında, “ her biri için() ' gibi ' yöntemi Nesne ” ve benzeri, “ TypeError: object.forEach, JavaScript'te bir işlev değil ' meydana gelmek. Belirtilen nedeni uygulamalı olarak test edelim.







Örnek vermek

Verilen örnekte, öncelikle, özellikleri anahtar/değer çiftinde olan bir nesne oluşturacağız:



sabit nesne = {

isim : 'Stephen' ,

rulo yok : onbir ,

ders : 'Ticaret'

} ;

Ardından, forEach() yöntemini kullanarak özelliklerini/girişlerini konsolda yazdırın:



nesne. her biri için ( Ö => {

konsol. kayıt ( Ö ) ;

} ) ;

Çıktıda da görebileceğiniz gibi forEach yöntemi nesneler için geçerli olmadığından bir hatayla karşılaşılıyor:





Belirtilen Hata Nasıl Düzeltilir?

Yukarıda tartışılan hatayı çözmek için, Object'in ' gibi yöntemlerini kullanın. Nesne.keys() ” bir dizideki anahtarları almak için, “ Nesne.değerler() ” nesnenin değerlerini almak için veya “ Nesne.girişler() ” bir nesnenin tüm girişlerini almak için. Ayrıca, “ Array.from() ” yöntemi, belirtilen nesneyi bir nesne dizisine dönüştürür.



Bu sorunu çözmek için bir örnek deneyelim.

Örnek 1: Bahsedilen Hatayı Object.entries() Yöntemini Kullanarak Düzeltin

Bu örnekte, “ kullanarak bir nesnenin girişlerini alacağız. Nesne.girişler() ” yöntemi ile “ her biri için() ” anahtar/değer çiftleri halinde bir dizi nesne girişi döndüren yöntem:

Nesne . girdileri ( nesne ) . her biri için ( içinde => {

konsol. kayıt ( içinde ) ;

} ) ;

Object.entries() yöntemi bir dizideki değerleri dönüştürdüğü ve forEach() yöntemi her öğede verilen işlevi yürütmek için kullanıldığı için hata vermez.

Çıktı, forEach() yönteminin Object.entries() yöntemi kullanılarak Nesne üzerinde başarıyla çalıştırıldığını gösterir:

Not: forEach yöntemi, Object.keys() ve Object.values() yöntemini kullanarak bir nesnenin anahtarlarını ve değerlerini almak için de uygulanır.

Şimdi, bir nesnenin anahtarlarını, değerlerini veya girişlerini almak isteyip istemediğinizi görelim, peki ne yapardınız? Verilen örneğe bakın!

Örnek 2: Bahsedilen Hatayı Array.from() Yöntemini Kullanarak Düzeltin

Bu hatayı düzeltmek için, nesneyi bir dizi nesneye dönüştürün ve ardından '' kullanarak forEach() yöntemini uygulayın. Array.from() ' yöntem. Bir nesnenin tüm özelliklerini hata vermeden yazdıracaktır.

Önce nesneyi bir nesne dizisine dönüştürelim:

sabit nesne = [ {

isim : 'Stephen' ,

rulo yok : onbir ,

ders : 'Ticaret'

} ]

forEach() yöntemini çağırın:

Dizi . itibaren ( nesne ) . her biri için ( de => {

konsol. kayıt ( de ) ;

} ) ;

Çıktı

Belirtilen hatayı düzeltmek için mümkün olan en iyi çözümleri derledik.

Çözüm

Bahsedilen hata, “ kullanmaya çalıştığınızda ortaya çıkıyor. her biri için() Array, Set veya Map olmayan bir değerde ” yöntemi. Bu hatayı düzeltmek için “ Array.from() ” yöntemini kullanarak nesneyi bir diziye dönüştürün ve ardından üzerinde forEach() yöntemini kullanın. Bu makalede, söz konusu hatanın oluşumu ve çözümü açıklanmaktadır.