JavaScript'te PHP `foreach' döngüsü gibi bir şey yapmanın bir yolu olup olmadığını merak ediyordum. Aradığım işlevsellik bu PHP Snippet'i gibi bir şey:
foreach($data as $key => $value) { }
JS for..in
döngüsüne bakıyordum, ancak as
ı belirtmenin bir yolu yok gibi görünüyor. Bunu bir 'normal' for döngüsü ile yaparsam (for(var i = 0; i < data.length; i++
), anahtar => değer çiftlerini yakalamanın bir yolu var mı?
for (var k in target){
if (target.hasOwnProperty(k)) {
alert("Key is " + k + ", value is " + target[k]);
}
}
hasOwnPropertyözelliği,
hedefinizin` bu özelliği prototipinden miras almak yerine gerçekten bu özelliğe sahip olup olmadığını kontrol etmek için kullanılır. Biraz daha basit olabilir:
for (var k in target){
if (typeof target[k] !== 'function') {
alert("Key is " + k + ", value is" + target[k]);
}
}
Sadece k
nın bir yöntem olup olmadığını kontrol eder (eğer hedef
dizi
ise, indexOf
, push
, pop
gibi birçok yöntem uyarısı alırsınız).
için...in sizin için çalışacaktır.
for( var key in obj ) {
var value = obj[key];
}
Modern JavaScript'te de bunu yapabilirsiniz:
for ( const [key,value] of Object.entries( obj ) ) {
}