gpt4 book ai didi

javascript - 循环遍历具有增量属性名称的对象

转载 作者:行者123 更新时间:2023-11-28 13:49:50 25 4
gpt4 key购买 nike

我正在尝试像数组一样循环访问一个对象。我正在努力将循环计数器附加到变量名称。

我有一个像这样的对象(output with dump(), which I found here):

object(2): {
elem0: array(4): {
[0]: string(27): "http://placehold.it/300x300"
[1]: string(3): "0.8"
[2]: string(4): "-150"
[3]: string(3): "200"
}
elem1: array(4): {
[0]: string(27): "http://placehold.it/300x300"
[1]: string(3): "0.6"
[2]: string(3): "-70"
[3]: string(3): "458"
}
}

这是我尝试循环它的方法:

jQuery(document).ready(function($) {

// Provides object-measuring functionality
Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};

// Returns the number of objects in my object
var size = Object.size(window.depthElems);

/*
This is where I'm having difficulty.
I would like to use window.depthElems.elem0,
then window.depthElems.elem1, etc.
*/

for (var i = 0; i < size; i++) {
$('.wrapper').append('<img src="' + window.depthElems.elem+i+[0] + '" />');
}

});

最佳答案

为了便于论证,我还将提供我的问题作为答案。您可以使用:

for(element in window.depthElems) {
if(window.depthElems.hasOwnProperty(element)) {
$('.wrapper').append('<img src="' + window.depthElems[element] + '" />');
}
}

这不仅更加优雅,而且需要的代码也少得多。当然,如果有理由使用其他代码,请说出来。

注意:此代码经过编辑,还包括读取“数组”的功能,但问题是使其能够与“对象”一起使用。如果您使用“objects”,则“hasOwnProperty”检查是多余的。

注意#2:您还可以像Azder所说的那样使用var hasOwn = Object.prototype.hasOwnProperty;,这是一个很好的保障.

关于javascript - 循环遍历具有增量属性名称的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com