我需要将一个新数组作为父数组键的值。
这是我的阵列。
asd[
[hey],
[hi]
]
我想回来。
asd[
[hey]=>[],
[hi]
]
我做:
var asd = new Array();
asd.push(hey);
asd.push(hi);
asd[hey].push(new Array());
so obviously is not ok my code
答案 0 :(得分:4)
而不是new Array();
,您应该只写[]
。您可以像这样创建一个嵌套数组
myarray =
[
"hey",
"hi",
[
"foo"
]
]
请记住,当您将事物推入数组时,会给出一个数字索引。代替asd[hey]
写asd[0]
,因为hey
将作为数组中的第一项插入。
答案 1 :(得分:1)
你可以这样做:
function myArray(){this.push = function(key){ eval("this." + key + " = []");};}
//example
test = new myArray();
//create a few keys
test.push('hey');
test.push('hi');
//add a value to 'hey' key
test['hey'].push('hey value');
// => hey value
alert( test['hey'] );
请注意,在此示例中,test
不是array
,而是myArray
实例。
如果您已经拥有一个数组,则需要键值:
function transform(ary){
result= [];
for(var i=0; i< ary.length; i++){result[ary[i]] = [];}
return result;
}
//say you have this array
test = ['hey','hi'];
//convert every value on a key so you have 'ary[key] = []'
test = transform(test);
//now you can push whatever
test['hey'].push('hey value');
// => hey value
alert( test['hey'] );
在这种情况下,test
仍为array
。