admin 管理员组

文章数量: 1086019

Why cannot loop an dynamic array through $.each()?

var array = [];
array['one'] = 'two';
$.each(array, function( key, value )
{
    //not get in loop
    alert(value);
});

Why cannot loop an dynamic array through $.each()?

var array = [];
array['one'] = 'two';
$.each(array, function( key, value )
{
    //not get in loop
    alert(value);
});
Share Improve this question asked Jan 5, 2017 at 20:41 user3014233user3014233 0
Add a ment  | 

1 Answer 1

Reset to default 14

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./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.

本文标签: javascriptJQuery cannot loop dynamic array through eachStack Overflow