javascript – js / jquery:对象键问题“长度”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – js / jquery:对象键问题“长度”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1060字,纯文字阅读大概需要2分钟。
内容图文
![javascript – js / jquery:对象键问题“长度”](/upload/InfoBanner/zyjiaocheng/800/d2fd4b6cbc924dd1b019cf13be0f160e.jpg)
我正在连接的API,给了我一个对象.其中一个键/属性称为“长度”,这会触发一些奇怪的行为:
var obj = {"text1":{"index":0,"lengt":5}}; //modified key for testing
$.each(obj.text1,function(k,v){
console.log ('i: '+k+' v: '+v); });
i: index v: 0 //this is the result I'm looking for
i: lengt v: 5
var obj = {"text1":{"index":0,"length":5}}; //original object
i: 0 v: undefined // ????
i: 1 v: undefined
i: 2 v: undefined
i: 3 v: undefined
i: 4 v: undefined
我假设长度是一个保留字,但这就是原始对象的来源.找出这个问题最好的方法是什么?
非常感谢任何帮助.
解决方法:
这是一个jquery“功能”;-).根据消息来源,如果没有定义长度属性,它会将变量视为对象:
https://github.com/jquery/jquery/blob/master/src/core.js#L589
var name,
i = 0,
length = obj.length,
isObj = length === undefined || jQuery.isFunction( obj );
^---------
如果isObj是假的 – 那么请看https://github.com/jquery/jquery/blob/master/src/core.js#L608
if ( isObj ) {
// not your case, ommitted
} else {
for ( ; i < length; ) {
if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) {
break;
}
}
}
正如你所看到的,它从i迭代到0到长度
内容总结
以上是互联网集市为您收集整理的javascript – js / jquery:对象键问题“长度”全部内容,希望文章能够帮你解决javascript – js / jquery:对象键问题“长度”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。