Javascript 无法获取正确的数组长度
下面的代码返回数组的长度Javascript 无法获取正确的数组长度,javascript,Javascript,下面的代码返回数组的长度 var test=[]; test["abc"]=1; test["abcd"]=11; console.log(test.length); 我期望它能输出2 但它显示0 欢迎您的评论您实际上并没有向数组添加任何元素,这是在数组对象上创建属性 通过键入以下内容,您可以看出我说的是实话: console.log(test.abc); console.log(test.abcd); 如果使用push()添加元素,或者使用如下数字索引设置元素,则长度可能会增加: test
var test=[];
test["abc"]=1;
test["abcd"]=11;
console.log(test.length);
我期望它能输出2
但它显示0
欢迎您的评论您实际上并没有向数组添加任何元素,这是在数组对象上创建属性 通过键入以下内容,您可以看出我说的是实话:
console.log(test.abc);
console.log(test.abcd);
如果使用push()
添加元素,或者使用如下数字索引设置元素,则长度可能会增加:
test[0] = 1;
test[1] = 2;
实际上,您并没有向数组中添加任何元素,而是在数组对象上创建属性
通过键入以下内容,您可以看出我说的是实话:
console.log(test.abc);
console.log(test.abcd);
如果使用push()
添加元素,或者使用如下数字索引设置元素,则长度可能会增加:
test[0] = 1;
test[1] = 2;
您应该使用以下方法计算键数:
理想情况下,不要使用数组,而是使用普通JavaScript对象(也称为哈希):
您应该使用以下方法计算键数:
理想情况下,不要使用数组,而是使用普通JavaScript对象(也称为哈希):
如果要向数组中添加项,请使用
array[0] = 1;
array[1] = 11;
否则,如果要将项目添加到数组中,您将向数组添加属性
array[0] = 1;
array[1] = 11;
否则,您将向数组添加属性您的问题是由于对Javascript中的组成和数组的误解
在Javascript中,数组
被指定为特定类型的对象,仅由数字键组成
.length
是数组对象的一个特殊属性,它与数组中最大数字键的值相关联
通过使用诸如“abc”
之类的键,实际上您只是在对象上设置任意属性;length
属性将完全不受此影响
您有两个选择:
对数组使用数字键
如果需要使用命名键,则必须接受length
属性和其他特定于阵列的功能不可用。因此,您也可以使用常规对象而不是数组
仍然可以对对象中的元素进行计数,但这并不像只使用length
属性那么简单
您的问题是由于对Javascript中的组成和数组的误解造成的
在Javascript中,数组
被指定为特定类型的对象,仅由数字键组成
.length
是数组对象的一个特殊属性,它与数组中最大数字键的值相关联
通过使用诸如“abc”
之类的键,实际上您只是在对象上设置任意属性;length
属性将完全不受此影响
您有两个选择:
对数组使用数字键
如果需要使用命名键,则必须接受length
属性和其他特定于阵列的功能不可用。因此,您也可以使用常规对象而不是数组
仍然可以对对象中的元素进行计数,但这并不像只使用length
属性那么简单
您正在添加答案中解释的属性,但为什么不使用JavaScript对象var test={},并向其添加属性?您正在添加答案中解释的属性,但为什么不使用JavaScript对象var test={},并向其添加属性?