For..In-Schleifen in JavaScript - Schlüssel-Wert-Paare

Ich habe mich gefragt, ob es eine Möglichkeit gibt, so etwas wie eine PHP "Foreach" Schleife in JavaScript zu tun. Die Funktionalität, die ich suche, ist etwas wie dieses PHP Snippet:

foreach($data as $key => $value) { }

Ich habe mir die JS-Schleife "for..in" angesehen, aber es scheint keine Möglichkeit zu geben, das "as" anzugeben. Wenn ich das mit einer 'normalen' for-Schleife mache (for(var i = 0; i < data.length; i++), gibt es dann eine Möglichkeit, die Schlüssel => Wertepaare zu erfassen?

for (var k in target){
    if (target.hasOwnProperty(k)) {
         alert("Key is " + k + ", value is " + target[k]);
    }
}

hasOwnProperty wird verwendet, um zu prüfen, ob Ihr Target diese Eigenschaft wirklich hat, anstatt sie von seinem Prototyp geerbt zu haben. Ein bisschen einfacher wäre es:

for (var k in target){
    if (typeof target[k] !== 'function') {
         alert("Key is " + k + ", value is" + target[k]);
    }
}

Es prüft nur, dass k keine Methode ist (wenn target array ist, werden viele Methoden gemeldet, z.B. indexOf, push, pop, usw.)

Kommentare (4)

for...in wird für Sie arbeiten.

for( var key in obj ) {
  var value = obj[key];
}

In modernem JavaScript können Sie dies auch tun:

for ( const [key,value] of Object.entries( obj ) ) {

}
Kommentare (0)
var obj = {...};
for (var key in obj) {
    var value = obj[key];

}

Die php-Syntax ist nur Zucker.

Kommentare (1)