Javascript 正在尝试获取数组长度
请参见下面给定的场景Javascript 正在尝试获取数组长度,javascript,arrays,Javascript,Arrays,请参见下面给定的场景 var x = []; x['abc'] = "hello"; console.log(x.length); //returns 0 var x = [1,2]; x['abc'] = "hello"; console.log(x.length); //returns 2 这背后有什么原因,或者我遗漏了什么吗?没有索引,您无法访问数组。如果要在数组中插入特定数据,可以如下所示: var x = []; x[0] = "hello"; alert(x.l
var x = [];
x['abc'] = "hello";
console.log(x.length); //returns 0
var x = [1,2];
x['abc'] = "hello";
console.log(x.length); //returns 2
这背后有什么原因,或者我遗漏了什么吗?没有索引,您无法访问数组。如果要在数组中插入特定数据,可以如下所示:
var x = [];
x[0] = "hello";
alert(x.length) //will return 1
您所做的是将数组转换为关联数组,其中索引是对指定值的引用。这类似于Javascript中的对象概念 长度为0,因为实际数组从索引0开始。所以如果你检查你的数组 console.log(x[0])//未定义 因此,通过写入,长度为0。
var x = [ ];
您正在定义一个标准数组,其中索引只能是整数
x['abc'] = "hello";
当您执行x[“abc”]
时,由于abc
(用作索引)不是整数,您基本上是在为arr
对象(javascript中的所有内容都是对象)定义一个属性,而不是在标准数组中添加元素。因此,数组保持原样
var x=[];
x[“abc”]=“你好”;
控制台日志(x)代码>根据
length属性的值在数字上大于名称
名称为数组索引的每个自己的属性;每当
创建或更改数组对象的own属性,其他
属性会根据需要进行调整以保持此不变
进一步
特别是,每当添加名称为数组的自有属性时
索引时,将更改长度属性的值
因此,当创建名称为数组索引的属性时,长度属性将被调整,只有当长度属性发生变化时才会改变
'abc'
在添加到数组中时是非数字的(因此不是数组的索引),不会反映长度
属性的任何更改。您不能像在Python或Php等中那样,在JavaScript中附加不是数字的用户定义键。在JavaScript中,数组的键只能是数字
这样做:
var x=[];
x['abc']=“你好”;
控制台日志(x.length)
非数字属性不会根据您的结果增加数组的长度,它可以正常工作。数组总是从零开始,而不是从一开始。在第二个场景中,您是按键添加的,追加时数组模式必须匹配。您的答案可能是: