1.应用场景
获取数组长度, 对象成员个数, 字符串数. |
2.学习/操作
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'; alert(a.length); </script> 请问数组a有多少个元素, 或者换一句话说, 数组a的长度为多少? 我们都知道现在数组a的元素个数为3个,但浏览器会告诉你a.length为0 !! js怎么获取对象的成员个数? 用length属性吗? <script type="text/javascript"> alert(a.length); </script> 以上代码得到结果为undefined! 综上所述,length不可靠,要想准确获取js数组元素个数或者对象的成员个数,我们需要自己动手写一个函数. 如果传入数组则计算数组长度,如果传入对象则计算对象成员数,如果传入字符串则计算字符串的字数.其他类型返回false <script type="text/javascript"> function count(o){ if(t == 'string'){ }else if(t == 'object'){ var n = 0; for(var i in o){ n++; } return n; } </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'; alert(count(a)); </script> 得到结果为3. <script type="text/javascript"> alert(count(a)); </script> 得到结果为2 补充: 如果是数组, 可以使用 var arr = [0, 1, 50]; var count = arr.filter(function(a) { return !!a; //注意判断条件 }).length; 但是: 因为有个元素为0 , 获取的长度为2, 所以要留心判断条件 后续补充 ... |
3.问题/补充
TBD |
4.参考
https://www.cnblogs.com/sunnywindycloudy/p/7382226.html //js获取数组长度,对象成员个数、字符串数 |
后续补充
...