gpt4 book ai didi

Javascript数组索引

转载 作者:行者123 更新时间:2023-11-29 19:57:31 24 4
gpt4 key购买 nike

很抱歉问了一个菜鸟问题,但如果我有一个数组:

MyArray["2cd"]="blah1";
MyArray["3cx"]="blah3";
MyArray["8cz"]="blah2";

还有一个字符串myStr="2cd";然后我使用 MyArray[myStr] 来获取 blah 的值,我如何获取我在对象/数组中访问的数字或在这种情况下为 0?

最佳答案

如果我能从字里行间看出,您似乎在想您发布的代码:

MyArray["2cd"] = "blah1";
MyArray["3cx"] = "blah3";
MyArray["8cz"] = "blah2";

将自动成为:

MyArray[0] = MyArray["2cd"] = "blah1";
MyArray[1] = MyArray["3cx"] = "blah3";
MyArray[2] = MyArray["8cz"] = "blah2";

因此您可以通过以下两种方式之一获取字符串 "blah1":

var foo = MyArray[0];  // sets foo to "blah1"
var bar = MyArray["2cd"] // also sets bar to "blah1"

但这不是 JavaScript 的工作方式。

您当然可以进行设置,这样您就可以使用我的MyArray[0]MyArray["2cd"] 来获取相同的内容值,但您必须像我的示例中那样明确地执行此操作。

你没有提到的一件事是你如何声明 MyArray 本身。它是 Array 还是 Object?也就是说,在您发布代码之前,您是否使用以下方法创建了 MyArray:

var MyArray = {};  // or equivalently, var Array = new Object;

或:

var MyArray = [];  // or equivalently, var Array = new Array;

第一个示例创建一个Object,第二个示例创建一个Array

有点令人困惑的是,JavaScript 同时具有这两种类型,在许多情况下您可以互换使用。但是,当您在对象中使用任意(通常但不一定非数字)键时,通常会使用 Object ,如您的示例所示。相反,当您主要使用严格的数字索引时,通常使用 Array

事实上,JavaScript 的Array 类型继承 Object 类型。 Array 只是一个具有一些额外行为的Object:

  • Array 具有额外的方法,例如 .push() 可将一个项目附加到数组。

  • Array 有一个 .length 属性,当您使用 .push() 或直接添加元素时,该属性会自动更新array[123] 赋值,或者当您使用 .pop() 或其他方法删除元素时。

正如 Fabrício 所指出的,JavaScript 没有的是一个“关联数组”,它的行为与您在其他一些语言中可能会发现的类似。它有对象和数组(继承自对象),您必须按照它们自己的方式处理它们中的每一个。

关于Javascript数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15723913/

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