Javascript动态数组影响$ .each循环

Dha*_*hit 3 html javascript arrays jquery

我动态创建了以下数组索引

var array=[];
array[4]=[];
array[6]=[];
array[100]=[];
Run Code Online (Sandbox Code Playgroud)

然后我试图在索引上添加一些数据

array[4].push({"id":3,"name":"dhaval"});
array[6].push({"id":6,"name":"harsh"});
array[100].push({"id":9,"name":"kevin"});
Run Code Online (Sandbox Code Playgroud)

然后,当我使用$ .each检索数据时,$ .each循环从0到100.

$.each(array,function(key,item){
    console.log(item);
});
Run Code Online (Sandbox Code Playgroud)

问题是我必须每次检查项目是否未定义,然后数据可能存在.那么循环的可能解决方案只有三次而不是100次.

输出:

4 undefined javascript_Each.html:23

[对象] javascript_Each.html:23

undefined javascript_Each.html:23

[对象] javascript_Each.html:23

93 undefined javascript_Each.html:23

[宾语]

小智 7

您可以使用本机forEach函数而不是jQuery each函数.该forEach回调不调用未初始化的值.看起来像这样:

var array = [];
array[4] = [];
array[6] = [];
array[100] = [];
array.forEach(function(item, key) {
  console.log(item);
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,回调仅调用三次.