[]
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ü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?
(({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?
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.
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.
- plutongezegendegilmi (07.10.21 11:51:31 ~ 12:09:47)
let obj = {rank:1, type:2, code:3, "origin-name":"Dummy Name" };
(({code, rank, "origin-name": originName, ...c}) => c)(obj)
(({code, rank, "origin-name": originName, ...c}) => c)(obj)
- lemmiwinks (07.10.21 13:19:24)
1