Ari*_*iod 11 javascript arrays
我有一个被视为关联数组的JavaScript对象.我们称之为"领域".它有几个要素,例如:
fields['element1'] = ...
fields['element2'] = ...
fields['element3'] = ...
Run Code Online (Sandbox Code Playgroud)
给定字段[0],是否可以获取属性的名称("element1")而不是其值?
pae*_*bal 19
假设你有一个对象oObject.它可能是:
var oObject = {} ;
oObject["aaa"] = "AAA" ;
oObject["bbb"] = "BBB" ;
oObject["ccc"] = "CCC" ;
oObject["ddd"] = "DDD" ;
oObject["eee"] = "EEE" ;
Run Code Online (Sandbox Code Playgroud)
现在,假设你想知道它的属性的名称和值,放入变量strName和strValue.为此,您使用"for(x in o)"构造,如下例所示:
var strName, strValue ;
for(strName in oObject)
{
strValue = oObject[strName] ;
alert("name : " + strName + " : value : " + strValue) ;
}
Run Code Online (Sandbox Code Playgroud)
"for(x in o)"构造将迭代对象"o"的所有属性,并且在每次迭代时,将变量"x"放入当前属性名称.那么,你需要做的就是写出o [x],但你已经知道了.
经过一番思考,看到Hank Gay的评论后,我觉得其他信息可能很有趣.
让我们天真(并忘记"在JavaScript中,所有对象,包括数组,都是关联容器"的事情).
您通常需要两种容器:地图和阵列.
如上例所示创建地图(使用"o = new Object();"或"o = {};"表示法,并且必须通过其属性访问.当然,地图是地图,不保证订购.
数组的创建方式不同,即使它们可以作为地图访问,也只能通过索引访问它们,以确保维护顺序.
要点是:
不,有两个原因.
你可以遍历属性:
function (obj) {
for (prop in obj) {
if (obj.hasOwnProperty(prop) {
return prop;
}
}
};
Run Code Online (Sandbox Code Playgroud)
...获得"第一"任意值的"第一"属性,可随时改变.
http://ajaxian.com/archives/fun-with-browsers-for-in-loop解释了hasOwnProperty模式.
| 归档时间: |
|
| 查看次数: |
27671 次 |
| 最近记录: |