Why cannot loop an dynamic array through $.each()
?
var array = [];
array['one'] = 'two';
$.each(array, function( key, value )
{
//not get in loop
alert(value);
});
For an array, $.each()
only loops through the numbered indexes. If you want to loop through named properties, you have to use an object.
var obj = {};
obj['one'] = 'two';
$.each(obj, function( key, value )
{
console.log(key, value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
This is explained in the documentation:
Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With