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

 

js获取数组长度,对象成员个数字、符串字数的更多相关文章

  1. php获取数组长度的方法(有实例)

    php获取数组长度的方法,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度,还有获取二维数组的方法. 在php中获取数组长度方法很简单,php为我们提供 ...

  2. lodash获取数组或对象的值 at

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  3. PHP获取数组长度的方法 函数参数的比较

    在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧.php如何获取数组的长度,使用php函数c ...

  4. php中如何获取数组长度

    php获取数组的长度的方法 一.总结 一句话总结:count方法和sizeof方法 二.php获取数组的长度的方法 php获取数组长度的方法: 一). 获取一维数组的方法: 1.count.sizeo ...

  5. C++:获取数组长度

    C/C++中如何获取数组的长度?   如何获取数组的长度 2010-12-15 20:49 C/C++中如何获取数组的长度? 收藏     C.C++中没有提供 直接获取数组长度的函数,对于存放字符串 ...

  6. JS获取字符串长度(区分中英文)

    JS获取字符串长度(区分中英文) 中文算2个字,英文一个. function getStrLength(str) {      var cArr = str.match(/[^\x00-\xff]/i ...

  7. c/c++ 获取数组长度

    在C/C++中并没有提供直接获取数组长度的函数 c/c++ 获取数组长度其中一种方法是使用sizeof(array) / sizeof(array[0]). 在C语言中习惯上在使用时都把它定义成一个宏 ...

  8. Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度-*

    ylbtech-Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度 1.返回顶部 Java 实例 - 获取数组长度  Java 实例 本文我们将为大家介绍如何使用数 ...

  9. JS中数组与对象的遍历方法实例小结

    一.数组的遍历: 首先定义一个数组 1 arr=['snow','bran','king','nightking']; 1.for循环,需要知道数组的长度; 2.foreach,没有返回值,可以不知道 ...

随机推荐

  1. MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(七)

    [周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包 ...

  2. php 特殊字符

    今天碰到一个处理文件特殊字符的事情,再次注意到这个问题,在php中: * 以单引号为定界符的php字符串,支持两个转义\'和\\ * 以双引号为定界符的php字符串,支持下列转义:     \n 换行 ...

  3. c++跨文件变量声明

    常量是内部链接的,可以直接定义;  变量是外部链接,如果在头文件定义的话,如果出现多次引用同一个头文件的编译单元,就会引发multi redifine错误, 这个时候就要只是声明变量来解决:exter ...

  4. [Machine Learning & Algorithm] 随机森林(Random Forest)-转载

    作者:Poll的笔记 博客出处:http://www.cnblogs.com/maybe2030/  阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 ...

  5. CodeForces - 367E:Sereja and Intervals(组合数&&DP)

    Sereja is interested in intervals of numbers, so he has prepared a problem about intervals for you. ...

  6. ZOJ2402 Lenny's Lucky Lotto List 简单DP

    Lenny's Lucky Lotto Lists Time Limit: 2 Seconds      Memory Limit:65536 KB Lenny likes to play the g ...

  7. 查看图片插件--Viewer(类似于qq和微信聊天 的查看图片)

    Viewer的github地址:https://github.com/fengyuanchen/viewer  下载该插件(在文件夹dist里面) 具有参考价值的几个网站:http://www.dow ...

  8. Linux设备树

    一.设备树编译 1.编译设备树:cd linux-x.xx & make dtbs,生成的dtb在目录linux-x.xx/arch/xxx/boot/dts下 2.反编译dtb,生成dts: ...

  9. MySQL--REPLACE INTO更新自增列值引发的异常

    ##=====================================================================##测试环境:MySQL版本:MySQL 5.7.19复制 ...

  10. oracle 日期时间函数

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年 ...