可通过键访问的对象的javascript集合

可通过键访问的对象的javascript集合,javascript,arrays,object,collections,key,Javascript,Arrays,Object,Collections,Key,如何在javascript中实现这一点 People[key1][0].FirstName = "First1-k1"; People[key1][0].LastName = "Last1-k1"; People[key1][1].FirstName = "First2-k1"; People[key1][1].LastName = "Last2-k1"; People[key2][0].FirstName = "First1-k2"; People[key2][0].LastName = "L

如何在javascript中实现这一点

People[key1][0].FirstName = "First1-k1";
People[key1][0].LastName = "Last1-k1";
People[key1][1].FirstName = "First2-k1";
People[key1][1].LastName = "Last2-k1";
People[key2][0].FirstName = "First1-k2";
People[key2][0].LastName = "Last1-k2";
People[key2][1].FirstName = "First2-k2";
People[key2][1].LastName = "Last2-k2";
或者可能:

People[key2].Index[1].LastName = "Last2-k2";
其他澄清:

SomeObject["somekey"][0].FirstName = "whatever";
SomeObject["somekey"][1].FirstName = "whatever";
SomeObject["someotherkey"][0].FirstName = "whatever";
SomeObject["someotherkey"][1].FirstName = "whatever";

谢谢

当同时使用属性和索引时,您谈论的是对象(具有属性)和数组(具有索引)


您的初始语法:
People[key1]
,意味着
People
是一个数组,其中
key1
是一个包含非负数的变量,或者
People
是一个对象,其中
key1
是一个字符串,将用作对象属性的名称

因此,你可以:

var People=[“约翰”、“保罗”、“林戈”、“乔治”];
变量key1=3;//数组使用非负数作为索引

console.log(人员[key1]);//“George”
key1
是一个变量(如
key2
,由您命名…)。它的价值是什么?你是说
var-people={“key1”:{“firstname:”First1-k1“,”LastName:”Last1-k1“,”key2“,{……}
people[“key1”]将获得key1的名字和姓氏还是
var-fam1:[{“firstname:”First1-k1“,”LastName:”Last1-k1“},{“firstname:”First1-k2“,”然后
people>将获得key1的姓氏和姓氏
然后
people[“fam1”][1]
将获得fam1编号1的名字和姓氏。我需要在people[key1]以及people[key2]、people[key3]……等中放置一组行。可能类似于:people[thekey]。FirstName[0]、people[thekey]。FistName[1]……等。因此,people[key1]中会有多行还有key2和key3…等等。我说的key1,key2只是一些例子。这些键实际上更像是“10”,“12”,“124”…它们是将转换为文本的ID号。是的,@mplungjan…就像你说的最后一部分…
people[“fam1”][1]
将获得fam1 number 1的名字和姓氏非常感谢@Scott Marcus!您提到的代码的最后一部分正是我所寻找的。很难解释为什么我需要这样的代码。这是我正在做的AngularJS应用程序的一部分。实际上,人名与我的代码无关,我只是将其用作示例。实际对象看起来更像:
OptionsLevel1[OptionSubtypeID][index]。OptionID
OptionsLevel1[OptionSubtypeID][index].OptionName
。解释整件事可能要花很长时间……但无论如何,谢谢!@Hawker。欢迎你。请不要忘记投票,并将我的帖子标记为答案。祝你好运!由于某些原因,由于我不熟悉使用stackoverflow,它不会显示我的“上升投票”。我如何将其标记为已回答?另外,这个问题被标记为暂停。…这让我很烦。你显然理解这个问题,那么为什么它会因为其他一些人不理解而被搁置?好吧,所以我没有看到复选标记…哈哈…我继续,并将你的答案标记为正确答案@Scott Marcus。