1

我很难找到一种将值动态推送到数组中的方法。我给出了以下情况:

var get_anchors= new Array('pitzel','mitzel','sizzle') 

current_anchor= pics[key].anchor; //has the value 'sizzle'

get_anchors[current_anchor].push(new Array('sizzle2','sizzle3'))

Javascript失败并说get_anchors[current_anchor] is undefined

我怎样才能get_anchors[current_anchor]工作。还是有其他方法可以完成这项工作?

所需的结果应类似于 'pitzel','mitzel','sizzle'['sizzle2','sizzle3]

4

2 回答 2

4

根据您的评论,您似乎想要一个哈希映射而不是数组。您可以为此使用对象:

var anchors = {
    'pitzel': [],
    'mitzel': [],
    'sizzle': []
};

然后你可以这样做:

anchors[current_anchor].push('sizzle2', 'sizzle3');

或假设anchors没有值为 的属性current_anchor,只需分配一个新数组:

anchors[current_anchor] = ['fooX', 'fooY'];

当然,您也可以动态填充对象。查看使用对象了解更多信息。

于 2012-05-08T14:11:58.200 回答
0

我不确定我是否理解您要执行的操作,但我认为您正在尝试在另一个发生的位置之后插入一些元素。这可以解决问题:

var get_anchors = [ 'pitzel', 'mitzel', 'sizzle' ];

current_anchor = get_anchors.indexOf(pics[key].anchor);
get_anchors.splice(current_anchor + 1, 0, 'sizzle2', 'sizzle3');

// get_anchors = [ 'pitzel', 'mitzel', 'sizzle', 'sizzle2', 'sizzle3' ]
于 2012-05-08T13:54:39.423 回答