js获取数组元素个数和对象成员数

Javascript怎么得到数组长度(也就是数组的元素个数)? Javascript怎么获取对象的成员个数? 你肯定想到了array.length!? 那么我们来测试一下下面这个例子. script type=text/javascript var a = []; a[50] = 50; alert(a.length); /script 请问数组a有多少个元
Javascript怎么得到数组长度(也就是数组的元素个数)?
Javascript怎么获取对象的成员个数?
你肯定想到了array.length!? 那么我们来测试一下下面这个例子.
  1. <script type="text/javascript">
  2.         var a = [];
  3.         a[50] = 50;
  4.         alert(a.length);
  5. </script>
请问数组a有多少个元素, 或者换一句话说, 数组a的长度为多少?你会告诉我长度为1, 但浏览器会告诉你a.length为51.
有点意思吧? 那我们再看一个例子.

  1. <script type="text/javascript">
  2.         var a = [];
  3.         a['age'] = '18';
  4.         a['sex'] = 'Male';
  5.         a['site'] = 'http://www.genban.org';
  6.         alert(a.length);
  7. </script>
请问数组a有多少个元素, 或者换一句话说, 数组a的长度为多少?
我们都知道现在数组a的元素个数为3个,但浏览器会告诉你a.length为0 !!

js怎么获取对象的成员个数? 用length属性吗?
  1. <script type="text/javascript">
  2.         var a = {'age':30,'sex':'male'};
  3.         alert(a.length);
  4. </script>
以上代码得到结果为undefined!

综上所述,length不可靠,要想得到准确的数组元素个数或者对象的成员个数,我们需要自己动手写一个函数.
如果传入数组则计算数组长度,如果传入对象则计算对象成员数,如果传入字符串则计算字符串的字数.其他类型返回false

  1. <script type="text/javascript">
  2.         function count(o){
  3.                 var t = typeof o;
  4.                 if(t == 'string'){
  5.                         return o.length;
  6.                 }else if(t == 'object'){
  7.                         var n = 0;
  8.                         for(var i in o){
  9.                                 n++;
  10.                         }
  11.                         return n;
  12.                 }
  13.                 return false;
  14.         }
  15. </script>
现在在测试一下刚才的例子? 
  1. <script type="text/javascript">
  2.         var a = [];
  3.         a[50] = 50;
  4.         alert(count(a));
  5. </script>
得到结果为2
  1. <script type="text/javascript">
  2.         var a = [];
  3.         a['age'] = '18';
  4.         a['sex'] = 'Male';
  5.         a['site'] = 'http://www.genban.org';
  6.         alert(count(a));
  7. </script>
得到结果为3.
  1. <script type="text/javascript">
  2.         var a = {'age':30,'sex':'male'};
  3.         alert(count(a));
  4. </script>
得到结果为2

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

根据移动、联通、电信的电话号码号段,实现一个简单的正则表达式来验证手机号码: // 手机号校验export function isPhoneNumber(phoneNum) { // let reg = /^[1][3,4,5,7,8,9][0-9]{9}$/; /* * 移动号码包括的号段:134/135/136/137,138,139; * 147/148(物
此段代码只支持主流浏览器,一些浏览器可能会不支持,比如:百度 代码如下: function openWx(){ locatUrl = weixin://; if(/ipad|iphone|mac/i.test(navigator.userAgent)) { var ifr =document.createElement(iframe); ifr.src = locatUrl; ifr.style.disp
1、用正则表达式判断 input type=text id=name placeholder=请输入用户名 value= onblur=CheckChinese(name,this.value) class=form-control function CheckIsChinese(obj,val){ var reg = new RegExp([\\u4E00-\\u9FFF]+,g); if(reg.test(val)){alert(包含
很多时候onclick事件是伴随着页面的跳转,也就会有相应的参数传递案。案例如下所示: a href=# onclick=showTable(this)123/a #为你要跳转的页面 这个时候你传的参数就是123 function showTable(data){ alert(data.innerHTML);//js写法 alert($(data).html()
这篇文章主要介绍了JS实现获取当前URL和来源URL的方法,涉及javascript针对页面document属性操作的相关技巧,需要的朋友可以参考下 index.html: !DOCTYPE htmlhtml lang=zh-cnheadmeta charset=UTF-8meta name=viewport content=width=device-width, initial-
在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。 下面通过例子,讲解这两者之间的区别。 先看例子: ?php //测试时文件的编码方式要是UTF8 $str=中文a字1符; echo strlen($str).br;//14 e