• 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

  • 相关阅读:
    将两个数组对比后合并为同一个数组
    invalid reference format: repository name must be lowercase
    Error: too many open files之ulimt
    vim打开文件末尾带有^M
    双层for循环体里,分别跳出外层循环和内层循环
    echarts 多饼图集合多标题
    近1个月订单占比城市TOP6
    javascript 显示日期
    国密SM2,SM4 For Delphi xe 10.3.3
    Datasnap POST 方案
  • 原文地址:https://www.cnblogs.com/ykcbwdt/p/12792960.html
Copyright © 2020-2023  润新知