是否有可能获得数组的长度而不迭代具有非数字索引的完整数组?
对于非数字索引数组,Length属性始终为0.
我们可以使用数组的另一个属性或它的原型来获取元素的数量吗?
var arr = [];
arr['first'] = 1;
arr['second'] = 2;
console.log(arr.length); //0
Run Code Online (Sandbox Code Playgroud)
小智 6
数组用于数字索引.
您可以添加其他属性,但它们对长度没有影响,方法Array.prototype将忽略它们.
如果您使用非数字属性,则应该使用{} (对象),并且您需要维护自己的属性.length.
或者,您可以使用该Object.keys方法找出有多少属性...
var obj = {};
obj['first'] = 1;
obj['second'] = 2;
var n = Object.keys(obj).length; // 2
Run Code Online (Sandbox Code Playgroud)
对于不支持ECMAScript 5的浏览器,您需要兼容性补丁......
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |