我用以下代码创建了一个数组:
var widthRange = new Array(); widthRange[46] = { min:0, max:52 }; widthRange[66] = { min:52, max:70 }; widthRange[90] = { min:70, max:94 }; 我想循环获取每个值46、66、90。我尝试过,for (var key in widthRange)但这给了我很多额外的属性(我假设它们是对象上的函数)。我不能使用常规的for循环,因为这些值不是连续的。 问题来源于stack overflow
您需要调用该hasOwnProperty函数以检查该属性是否实际上是在对象本身上定义的(相对于其原型),如下所示:
for (var key in widthRange) { if (key === 'length' || !widthRange.hasOwnProperty(key)) continue; var value = widthRange[key]; } 请注意,您需要单独检查length。 但是,您根本不应该在这里使用数组。您应该使用常规对象。所有Javascript对象均用作关联数组。
例如:
var widthRange = { }; //Or new Object() widthRange[46] = { sel:46, min:0, max:52 }; widthRange[66] = { sel:66, min:52, max:70 }; widthRange[90] = { sel:90, min:70, max:94 };
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。