非数字索引数组的长度
length of non numeric indexed array?
是否可以在不迭代具有非数字索引的完整数组的情况下获得数组的长度?
对于非数字索引数组,Length属性始终为0。
我们可以使用数组的另一个属性或它的原型来获得元素的数量吗?
var arr = [];
arr['first'] = 1;
arr['second'] = 2;
console.log(arr.length); //0
数组用于数字索引。
您可以添加其他属性,但它们对长度没有影响,Array.prototype
的方法将忽略它们。
如果使用非数字属性,则应该使用{}
(对象),并且需要维护自己的.length
。
或者,您可以使用Object.keys
方法来找出有多少属性。。。
var obj = {};
obj['first'] = 1;
obj['second'] = 2;
var n = Object.keys(obj).length; // 2
对于不支持ECMAScript 5的浏览器,您需要一个兼容性补丁。。。
- MDN处的Object.keys
好吧,问题是你不是在向数组添加值,而是在向对象添加属性。就获取对象的本地属性数量而言,您可以使用object.keys(arr).length
相关文章:
- JavaScript 在数组中查找缺少的数字
- 在javascript数组中分散数字
- 将数组键转换为数字node.js
- 删除JS数组中的最小数字
- 创建具有2个唯一数字的Javascript数组
- Javascript按数字顺序排序()数组
- 如何将数字切成更小的数字以适合我的数组
- Javascript中的非数字索引多维数组
- 指定数组中的元素对,其总和等于特定的目标数字
- 从数组/字符串中删除所有小数和单个数字
- 从数组[Javascript]的总长度中减去一个干净的数字
- 如何获取数组中数字的最大出现次数
- 如何将数字相加并将结果放入数组中
- JS:从数组中查找特定范围内的最低/最高数字
- 返回最大数字的数组
- 将数组中的所有数字组合相加
- 在数组中生成随机数,没有任何重复的数字
- 循环遍历数字和字母数组并仅提取数字
- 给定一个带有数字的数组,我如何编写一个递归函数,当 2 个元素加起来为一个目标时,它会在数组中查找索引
- 如何将数组(数字)加载到谷歌应用脚本 Byte[] 中