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轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/106492.html
標籤:JavaScript
