文章来源:百度文库
 
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. Linux的date常用操作

    Linux的date常用操作 ## 在指定的日期上减1天 $ date -d "2012-04-10 -1 day " +%Y-%m-%d 2012-04-09 ## 在指定的日期 ...

  2. 2.spring 学习

    1.spring简单工程搭建 http://www.cnblogs.com/yun965861480/p/6278193.html 2.spring数据源 http://www.cnblogs.com ...

  3. git误提交了项目文件和配置文件的恢复方法

    参考链接:https://my.oschina.net/yangfuhai/blog/708704

  4. 利用Teensy进行em410x卡模拟以及暴力破解em410x类门禁系统

    什么是低频?什么是EM410x? 首先,我不得不再次提一下那些工作在125khz频率下的低频卡(如:EM410X之类的),以便大家更好的阅读以下的内容. 什么是低频?以下就是低频的解释: 低频(LF, ...

  5. UNIX设备文件

    UNIX和Linux中比较重要的三个设备文件是:/dev/console,/dev/tty和/dev/null. 0 /dev/console 这个设备代表的是系统控制台,错误信息和诊断信息通常会被发 ...

  6. 类似select下拉选择框同时又支持手动输入的元素 datalist 介绍。

    有时候我们会有这样的需求,通过使用下拉菜单给用户一定的选择范围,同时又可以使用户在找不到选择项的时候手动输入.这个时候我们就需要用到html5的datalist属性了. datalist包含<o ...

  7. 框架流程图绘制工具OmniGraffle 7 for Mac

    1.官网下载地址 https://www.omnigroup.com/omnigraffle 2.激活方法 Omnigraffle Pro 7注册码/许可证 名字:Appked 序列号:MFWG-GH ...

  8. 微信小程序之蓝牙开发(详细读数据、写数据、附源码)

    本文将详细介绍微信小程序的蓝牙开发流程(附源码)准备:微信只支持低功耗蓝牙也就是蓝牙4.0,普通的蓝牙模块是用不了的,一定要注意. 蓝牙可以连TTL接到电脑上,再用XCOM调试 一开始定义的变量 va ...

  9. Css的优先权问题

    看这篇文章之前,对这个问题一直没深入研究,导致有时候遇到一些问题会很麻烦,看到这篇文章让我茅塞顿开,转帖回来保存一下以便今后复习. 发现很多朋友对 CSS 的优先权不甚了解,规则很简单.需要说明的一点 ...

  10. 在MNIST数据集,实现多个功能的tensorflow程序

    使用带指数衰减的学习率的设置.使用正则化来避免过拟合,使用滑动平均模型使得最终模型更加健壮. import tensorflow as tf from tensorflow.examples.tuto ...