当前位置: 首页 > 面试题库 >

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

司空朝
2023-03-14
问题内容

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

为什么“字符串键控”索引不增加length数组的?

我可以存储东西并仍然可以访问它,而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' };


 类似资料:
  • 问题内容: 在上面,为什么(char1 + 1)或(char ++)不打印增量字符,而其他两个打印呢? 问题答案: 首先,我假设是因为您说的是工作量的增加,所以您确实指定了: 编辑 响应问题(=> )的更改,我看到了问题。输出是 之所以显示,是因为char 被提升为一个(二进制数字提升)加1。因此变成97(的ASCII值)和98个结果。 但是,或者不执行二进制数字提升,因此它可以按预期工作。 引用

  • 问题内容: 我正在学习python并试图将github问题转换为可读形式。使用有关如何将JSON转换为CSV的建议?我想出了这个: 其中“ issues.json”是包含我的github问题的json文件。当我尝试运行它时,我得到 我在这里想念什么?哪些是“字符串索引”?我确定一旦完成这项工作,我就会遇到更多问题,但是就目前而言,我只是喜欢这个工作! 当我将陈述调整为 我得到的是…“问题”-所以我

  • 问题内容: 我正在学习python并试图将github问题转换为可读形式。使用有关如何将JSON转换为CSV的建议?我想出了这个: 其中“ issues.json”是包含我的github问题的json文件。当我尝试运行它时,我得到 我在这里想念什么?哪些是“字符串索引”?我确定一旦完成这项工作,我还会遇到更多问题,但是就目前而言,我只是希望它可以工作! 当我将陈述调整为 我得到的是…“问题”-所以

  • 问题内容: 我正在使用以下语法从Javascript向数据库发送JSON字符串: 在我将这些数据简单地放入数据库而不用php对其进行解码之前,它在恢复后再次使用时就没有问题。 但是,现在我需要对字符串中的数据进行一些更改,因此我在PHP中对其进行了解码,这将导致如下所示的数组: 我的问题是,当我将此数组编码回JSON时,字符串的格式如下: 我需要编码的字符串与我的javascript创建的字符串相

  • 问题内容: 是否可以在Python数组中使用字符串作为索引? 例如: 问题答案: 您想要的称为关联数组。在python中,这些被称为字典。 词典有时在其他语言中被称为“关联记忆”或“关联数组”。与用数字范围索引的序列不同, 字典是用键索引的,键可以是任何不可变的类型 ;字符串和数字始终可以是键。 创建上述字典的另一种方法: 访问值: 获取密钥(在Python v2中): 在Python 3中,您将

  • 问题内容: 我有以下课程: 这是编译结果; 为什么我的输出中包含数字? 问题答案: 在第二种情况下,它将两个字符(G-71和o-111)的unicode码相加并打印总和。这是因为被视为数字类型,因此在这种情况下,运算符是通常的求和。