Javascript怎麼得到數組長度(也就是數組的元素個數)? Javascript怎麼獲取對象的成員個數? 你肯定想到了array.length!? 那麼我們來測試一下下麵這個例子. <script type="text/javascript"> var a = []; a[50] = 50; a ...
Javascript怎麼得到數組長度(也就是數組的元素個數)? Javascript怎麼獲取對象的成員個數? 你肯定想到了array.length!? 那麼我們來測試一下下麵這個例子.
<script type="text/javascript">
var a = [];
a[50] = 50;
alert(a.length);
</script>
請問數組a有多少個元素, 或者換一句話說, 數組a的長度為多少?
你會告訴我長度為1, 但瀏覽器會告訴你a.length為51. 有點意思吧? 那我們再看一個例子.<script type="text/javascript">
var a = [];
a['age'] = '18';
a['sex'] = 'Male';
a['site'] = 'http://www.qSyz.net';
alert(a.length);
</script>
請問數組a有多少個元素, 或者換一句話說, 數組a的長度為多少? 我們都知道現在數組a的元素個數為3個,但瀏覽器會告訴你a.length為0 !! js怎麼獲取對象的成員個數? 用length屬性嗎?<script type="text/javascript">
var a = {'age':30,'sex':'male'};
alert(a.length);
</script>
以上代碼得到結果為undefined! 綜上所述,length不可靠,要想準確獲取js數組元素個數或者對象的成員個數,我們需要自己動手寫一個函數. 如果傳入數組則計算數組長度,如果傳入對象則計算對象成員數,如果傳入字元串則計算字元串的字數.其他類型返回false<script type="text/javascript">
function count(o){
var t = typeof o;
if(t == 'string'){
return o.length;
}else if(t == 'object'){
var n = 0;
for(var i in o){
n++;
}
return n;
}
return false;
}
</script>
現在在測試一下剛纔的例子?
<script type="text/javascript">
var a = [];
a[50] = 50;
alert(count(a));
</script>
得到結果為2
<script type="text/javascript">
var a = [];
a['age'] = '18';
a['sex'] = 'Male';
a['site'] = 'http://www.qSyz.net';
alert(count(a));
</script>
得到結果為3.
<script type="text/javascript">
var a = {'age':30,'sex':'male'};
alert(count(a));
</script>
得到結果為2
來源:https://www.cnblogs.com/sunnywindycloudy/p/7382226.html