Mi stavo chiedendo se c'è un modo per fare qualcosa come un ciclo foreach
di PHP in JavaScript. La funzionalità che sto cercando è qualcosa come questo snippet PHP:
foreach($data as $key => $value) { }
Stavo guardando il ciclo JS for..in
, ma sembra che non ci sia modo di specificare il as
. Se lo faccio con un 'normale' ciclo for (for(var i = 0; i < data.length; i++
), c'è un modo per prendere le coppie chiave => valore?
for (var k in target){
if (target.hasOwnProperty(k)) {
alert("Key is " + k + ", value is " + target[k]);
}
}
hasOwnProperty
è usato per controllare se il vostro target
ha davvero quella proprietà, piuttosto che averla ereditata dal suo prototipo. Un po' più semplice sarebbe:
for (var k in target){
if (typeof target[k] !== 'function') {
alert("Key is " + k + ", value is" + target[k]);
}
}
Controlla solo che k
non sia un metodo (perché se target
è array
si otterrà un sacco di metodi, ad esempio indexOf
, push
, pop
, ecc.)