Javascript 如何使用Ext.iterate(或JS)迭代对象数组?
我知道网上有很多关于这个问题的答案,但我还是不能让它起作用 在对JSON帖子进行回调之后,我正在检索一个对象数组。 在浏览器的控制台日志中,数组如下所示: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:
[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@安迪,链接死了。