文章来源:百度文库
 
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

 

最新文章

  1. 天行API服务器地址申请
  2. git 学习笔记7--branch
  3. ACM 疯牛
  4. elasticsearch插件之一:bigdesk
  5. checkbox的全选、反选(计算价格)
  6. 二叉树的基本操作(C)
  7. Linux Shell脚本中点号和source命令
  8. WPF扩展标记
  9. Zepto源码笔记(三)
  10. AngularJs学习(1)
  11. 基础知识——Cocos2d-x学习历程(三)
  12. 使用LINGO来解决0/1背包算法问题
  13. 【一天一道LeetCode】#371. Sum of Two Integers
  14. .NET Core Session的简单使用
  15. Fragment嵌套Fragment时候。子类fragment调用父容器Fragment方法
  16. jenkins使用4----git maven工具连接
  17. c++之__attribute__((unused))
  18. Python自动化测试用例设计--测试类型
  19. LeetCode - 774. Minimize Max Distance to Gas Station
  20. jmeter使用HTTP代理服务器

热门文章

  1. ApplicationContext详解以及多个ApplicationContext.xml的相互引用
  2. OC基础:内存(内存管理) 分类: ios学习 OC 2015-06-25 16:50 73人阅读 评论(0) 收藏
  3. 备份Windows密钥,重装后免费激活系统教程
  4. 如何释放vector变量
  5. HDU 1010:Tempter of the Bone(DFS+奇偶剪枝+回溯)
  6. Windows10 解决“装了 .NET Framework 4.5.2/4.6.1/4.7.1等等任何版本 或版本更高的更新”问题
  7. Wireless Network 并查集
  8. Ordering Tasks 拓扑排序
  9. Anaconda+Tensorflow环境安装与配置
  10. LG2945 【[USACO09MAR]沙堡Sand Castle】