最近我们一直在使用JavaScript“哈希”,我们一直在寻找一种通用的方法来计算包含在数组和哈希中的项目,而不必“知道”我们正在处理的除了在计数方法。众所周知,.length是无用的,因为它只返回数组中最高索引的值。我们下面的内容不起作用,因为哈希对数组测试为true,但返回的长度值对于哈希来说是废话。我们最初用Object.keys()。length替换了整个项目的长度,但在IE8及更低版本中不支持。如何获得javascript“数组”的长度
这是一个愚蠢的简单的事情,我们似乎无法得到它的工作。帮助我,欧比万。你是我唯一的希望!
function isNullOrUndefined(aObject) {
"use strict";
return (typeof aObject === 'undefined' || aObject === null);
}
function count(aList) {
"use strict";
var lKey = null,
lResult = 0;
if (!isNullOrUndefined(aList)) {
if (aList.constructor == Array) {
lResult = aList.length;
} else if (!isNullOrUndefined(Object.keys)) {
lResult = Object.keys(aList).length;
} else {
for (lKey in aList) {
if (aList.hasOwnProperty(lKey)) {
lResult++;
}
}
}
}
return lResult;
}
散列只是一个文字对象吗? – elmuchacho 2012-04-05 16:17:39