我有一种情况,我希望构建一个可以通过以下方式访问的数组:
myArray['Foo'].push(myObj);
但我不知道如何从头开始创建它。从我读过的内容来看,我认为以下可能会做到这一点:
var myArray = new Array(new Array());
问题是它只允许我使用整数来引用 myArray[]。如果我忽略此限制并尝试以下操作,则会错误提示它没有 .push():
myArray[i].push(myObj);
我想这是因为 myArray[i] 返回一个字符串?
所以我的问题是,如何构建一个动态数组,在其中使用字符串引用第一个维度,然后可以在第二个维度上推送和弹出?另外,如果我采用这种方法,我可以使用 push 和 pop 将字符串添加到第一个维度吗?
我之前考虑过这一点,并写了一些我认为可能有效的代码,它确实如此。
var myArray = new Object();
var myObj = new Object();
var myObj2 = new Object();
var myObj3 = new Object();
myObj.name = "Harry";
myObj2.name = "Curly";
myObj3.name = "Moe";
myArray["first"] = new Array()
myArray["first"].push(myObj);
myArray["first"].push(myObj2);
myArray["first"].push(myObj3);
myArray["second"] = new Array()
myArray["second"].push(myObj2);
myArray["third"] = new Array()
myArray["third"].push(myObj3);
iterate(myArray, "first");
iterate(myArray, "second");
iterate(myArray, "third");
function iterate(array, name) {
for(i = 0, l = myArray[name].length; i < l; i++) {
console.log(" " + name + ": " + i + " value " + myArray[name][i].name);
}
}
以上是正确的方法吗?
我确定我在上面遇到了一些术语问题,请告诉我,我会对其进行编辑,使其正确。