Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Ext.iterate(或JS)迭代对象数组?_Javascript_Arrays_Extjs - Fatal编程技术网

Javascript 如何使用Ext.iterate(或JS)迭代对象数组?

Javascript 如何使用Ext.iterate(或JS)迭代对象数组?,javascript,arrays,extjs,Javascript,Arrays,Extjs,我知道网上有很多关于这个问题的答案,但我还是不能让它起作用 在对JSON帖子进行回调之后,我正在检索一个对象数组。 在浏览器的控制台日志中,数组如下所示: [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object] 在每个对象内部,都有如下内容: id4blob: "1084" 所以我假设数组可能是这样的,如果我错了,请纠正我: [{id4blob: "1084"},{id4blob:

我知道网上有很多关于这个问题的答案,但我还是不能让它起作用

在对JSON帖子进行回调之后,我正在检索一个对象数组。 在浏览器的控制台日志中,数组如下所示:

 [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
在每个对象内部,都有如下内容:

 id4blob: "1084"
所以我假设数组可能是这样的,如果我错了,请纠正我:

 [{id4blob: "1084"},{id4blob: "2008"}, [...]]
数组存储在一个名为stationsParse的变量中

我想迭代这些值,我发现

  Ext.iterate
所以我这样做了:

Ext.iterate(stationsParse, function(key, value) {
   console.log(key + value);
});
然后尝试了这个,看起来是一样的,但是在纯JS中

for (key in stationsParse) {
  var value = stationsParse[key];
  console.log(key + value);
}
但是没有工作,我的控制台中没有显示任何内容。 尽管如此,该功能触发良好,我可以在Chrome控制台中看到它,但for被忽略

我做错了什么?
这是迭代对象数组的正确方法吗?

如果您想使用vanilla JS在数组上循环,一个简单的for循环就可以了。使用点表示法访问每个对象的id4blob属性的值

for (var i = 0, l = arr.length; i < l; i++) {
  console.log(arr[i].id4blob)
}
for…in循环通常用于在对象的属性上循环


试着这样做:

var stationsParse = [{id: 1, someproperty: 2}, {id: 2, someproperty: 101}];

Ext.each(stationsParse, function(ob){
  Ext.Object.each(ob, function(property, value){
    console.log(property, value);
  });
});

这里我使用Ext.each来迭代stationsParse数组中的每个元素。该数组中的每个元素都是一个对象。为了迭代对象中的每个属性,我使用Ext.object.each。两个“each”函数都将要迭代的变量作为其第一个参数,并将函数作为其第二个参数。该函数将在对象的数组/属性的每个元素上运行。

我能够做到这一点:

for (var i in family) {
    console.log( family[i]["name"] );
}
在本教程中,其中“族”是一组对象


我能看到的唯一区别是迭代器变量I前面的变量。

您还可以对数组和对象使用Ext.iterate object,fn,[scope]:如果给定值是iterable,则该方法将委托给Ext.array.each,否则委托给Ext.object.each@安迪,链接死了。