(2)
JS - objeden eleman silmek
let obj = {rank:1, type:2, code:3, "origin-name":"Dummy Name" };(({code, rank, ...c}) => c)(obj)yukarıdaki kod parçacığında obj adındaki nesnede ihtiyacım olmayan datalar var ve silmek istiyorum. ikinci satıdaki ufak fonksiyon spread operatör sayesinde code ve rank property'leri dışındakileri döndür
let obj = {rank:1, type:2, code:3, "origin-name":"Dummy Name" };
(({code, rank, ...c}) => c)(obj)
yukarıdaki kod parçacığında obj adındaki nesnede ihtiyacım olmayan datalar var ve silmek istiyorum. ikinci satıdaki ufak fonksiyon spread operatör sayesinde code ve rank property'leri dışındakileri döndürüyor.
ama bu fonksiyon sausasage-case ile yazılmış property'lerde işe yaramıyor.
bu yöntem ile "origin-name" adındaki şeyi çıkarmak istersem nasıl yaparım?
farklı yöntemler var da, ben bu yöntemle nasıl olacağını merak ettim.
yoksa dot notation ile yapılan her şey bracket notation ile yapılamıyor mu?
0
biseysorcaktim (
07.10.21)
dot notation ile yapılan her şey bracket ile yapılamıyor evet.
obj.rank => dediğinizde, js gidip obj'nin rank isimli alanına erişiyor.
obj[rank] => derseniz, rank diye bir değişken varmış gibi düşünüp, onun değerini alıp, o değere sahip alana erişiyor. Mesela bir satır üstte let rank = "type" demiş olsaydınız, size 2 dönerdi obj.
Dot notation kullanmak istiyorsanız, noktadan sonra gelen kelimenin valid bir değişken ismi olması gerekiyor. JS'te değişkenlerde - işareti olamaz. O yüzden o şekilde ulaşamazsınız.
Evet, noktadan sonra gelen şey aslında değişken değil, "property name", fakat syntax'ının değişken ismi olması gerekiyor. Hafif kafa karışıtırıcı, ama js böyle bir dil maalesef.
0
plutongezegendegilmi
(
07.10.21)
let obj = {rank:1, type:2, code:3, "origin-name":"Dummy Name" };
(({code, rank, "origin-name": originName, ...c}) => c)(obj)
0