js獲取數組長度,對象成員個數字、符串字數


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM