gpt4 book ai didi

javascript - 为什么数组中的字符串索引不会增加 'length' ?

转载 作者:IT王子 更新时间:2023-10-29 03:04:55 24 4
gpt4 key购买 nike

在下面的例子中,array2.length只有10,而在我看来,它应该是13

为什么“字符串键控”索引不会增加数组的长度

我可以存储内容并仍然访问它,VS 调试器显示这些数组已正确存储。那么为什么length没有增加呢?

var array2 = new Array();
array2["a"] = new Array();
array2["b"] = new Array();
array2["c"] = new Array();
for (var i = 0; i < 10; ++i)
array2[i] = new Array();

var nothing = "";
for (var i = 0; i < array2.length; ++i)
nothing = "";

最佳答案

Javascript 数组不能有“字符串索引”。 Javascript Array 是唯一的数字索引。当您设置“字符串索引”时,您正在设置对象的属性。这些是等价的:

array.a = 'foo';
array['a'] = 'foo';

那些属性不是数组“数据存储”的一部分。

如果你想要“关联数组”,你需要使用一个对象:

var obj = {};
obj['a'] = 'foo';

也许最简单的可视化是使用文字符号而不是 new Array:

// numerically indexed Array
var array = ['foo', 'bar', 'baz'];

// associative Object
var dict = { foo : 42, bar : 'baz' };

关于javascript - 为什么数组中的字符串索引不会增加 'length' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com