最近我們一直在使用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