BFT*_*ick 9 javascript arrays multidimensional-array
可能重复:
Javascript关联数组的长度
我想检查一个多维数组的长度,但我得到"未定义"作为返回.我假设我的代码出错了,但我看不出有什么奇怪的.
alert(patientsData.length); //undefined
alert(patientsData["XXXXX"].length); //undefined
alert(patientsData["XXXXX"]['firstName']); //a name
fruits = ["Banana", "Orange", "Apple", "Mango"];
alert(fruits.length); //4
Run Code Online (Sandbox Code Playgroud)
思考?这可能与范围有关吗?声明数组并在函数外部设置.这可能与JSON有关吗?我从eval()语句创建了数组.为什么虚拟阵列工作得很好?
那些不是数组.它们是物体,或者至少它们被视为物体.即使它们是数组实例,换句话说,"长度"仅跟踪最大的数字索引属性.
JavaScript实际上没有"关联数组"类型.
您可以使用以下内容计算对象实例中的属性数:
function numProps(obj) {
var c = 0;
for (var key in obj) {
if (obj.hasOwnProperty(key)) ++c;
}
return c;
}
Run Code Online (Sandbox Code Playgroud)
当你拥有继承链等时,事情变得有些混乱,你必须根据你自己的架构找出你想要的语义.