Me preguntaba si hay una manera de hacer algo como un foreachbucle PHP en JavaScript. La funcionalidad que estoy buscando es algo como este fragmento de PHP:
foreach($data as $key => $value) { }
Estaba mirando el for..inbucle JS , pero parece que no hay forma de especificar el as. Si hago esto con un bucle for 'normal' ( for(var i = 0; i < data.length; i++), ¿hay alguna manera de obtener los pares clave => valor?
fuente

Object.entriesllamada. Sin embargo, no ejecuté ninguna prueba.hasOwnPropertyse utiliza para verificar sitargetrealmente tiene esa propiedad, en lugar de haberla heredado de su prototipo. Un poco más simple sería:Es sólo comprueba que
kno es un método (como sitargetesarrayque obtendrá una gran cantidad de métodos de alerta, por ejemploindexOf,push,pop, etc.)fuente
Object.keys.Object.keys(target).forEach(function (key) { target[key]; });.targetse crea usandoObject.create(null), el código debe cambiarsetarget.hasOwnProperty(k)->Object.prototype.hasOwnProperty.call(target,k)k,targetyproperty? Para mí, no javascripter esta área de indefinido :)Nadie lo ha mencionado,
Object.keysasí que lo mencionaré.fuente
for oftc39wiki.calculist.org/es6/for-ofpara ... en trabajará para ti.
En JavaScript moderno también puedes hacer esto:
fuente
La sintaxis php es solo azúcar.
fuente
Supongo que sabe que esa
ies la clave y que puede obtener el valor a través dedata[i](y solo quiere un atajo para esto).ECMAScript5 introdujo
forEach[MDN] para las matrices (parece que tiene una matriz):La documentación de MDN proporciona una cuña para los navegadores que no lo admiten.
Por supuesto, esto no funciona para los objetos, pero puede crear una función similar para ellos:
Desde que etiquetaste la pregunta con jquery, jQuery proporciona
$.each[docs] que recorre las estructuras de matriz y de objeto.fuente
forEach, no un objetoforEach.for eachsintaxis.for each (let val in myObj) console.log(val);.Puedes usar el
for..inpara eso.fuente
En javascript, cada objeto tiene un par de pares clave-valor integrados que tienen metainformación. Cuando recorre todos los pares clave-valor de un objeto, también lo recorre. El uso de hasOwnProperty () los filtra.
fuente
ES6 proporcionará Map.prototype.forEach (devolución de llamada) que se puede usar de esta manera
fuente
myMap?fuente
[['a', 1],['b',2],['c',3]]. ElforEachdeconstruye cada una de las matrices de clave / valor y establece las dos variables akeyyvalue, para ser utilizado como desea que la función - aquí en la salidaconsole.log.Puede usar un bucle 'for in' para esto:
fuente
A continuación se muestra un ejemplo que se acerca lo más posible.
Si está utilizando jQuery, consulte: http://api.jquery.com/jQuery.each/
fuente
Si está usando Lodash , puede usar
_.forEachfuente
En los últimos años desde que se hizo esta pregunta, Javascript ha agregado algunas características nuevas. Uno de ellos es el método Object.Entries .
Copiado directamente de MDN es el fragmento de código siguiente
fuente
sí, puedes tener matrices asociativas también en javascript:
fuente
fuente