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 に答える