2013-05-20 9 views
5

変数を使用して配列のカスタムインデックスを設定することは可能ですか?例えばカスタム変数インデックスを使用するJavascript配列

var indexID = 5; 
var temp = { 
    indexID: new Array() 
}; 

上記の例はindexIDなく5に配列インデックスを設定します。私は= snd引用符を使用してみましたが、私は何の成功もありません。

Thnaks

+1

まあまあです。 ** 'temp 'は配列ではありません。** – Bart

+0

これはまだ動作していません。これは動作します:var temp = {5:new Array()};私が変数に5を代入すると、変数に代入されます。私はすべての提案されたソリューションを試しました... –

+0

はいはい私は混乱する配列とオブジェクトを参照してください。別の言い方をすれば、私がしようとしているのは、最初の数値インデックスとして0以外の値を持つ配列を作成することなので、私の場合の最初のインデックスは5になります。 –

答えて

12

はい、ちょうど角括弧表記を使用します。

var temp = {}; 
temp[indexID] = []; 

tempがオブジェクトではなく、配列であるという事実に注意を払います。 JavaScriptではすべて連想配列(または辞書)がオブジェクトとして表されます。

MORE:http://www.jibbering.com/faq/faq_notes/square_brackets.html#vId

+0

有益な答えをありがとう。私がやっていることはベストプラクティスではないと思うので、私はアプローチを変更し、0を配列の最初のインデックスとして使用しました。私は、後の視野では実用的ではない変数として配列のインデックスを2倍にしようとしていました。 –

1

あなたのコードを使用すると、オブジェクトを作成します。

代わりにあなたが

var indexID = 5; 
var temp = []; 
temp[indexID] = []; 
4

を行うことができます私が何をしたいことだと思う:あなたはObjectArrayを混合している

var indexID = 5; 
var temp = {}; 
temp[indexID] = "stuff" 
0

。配列には(数値)インデックスがあり、オブジェクトはキーと値のペアで構成されます。ここでkeyは任意の文字列です。

誰もが同意するだろう、BUあなたはObject.prototype

Object.prototype.append = function(key,val){ 
    // confine to Object instances 
    if (this.constructor !== Object && 
     !/object/i.test(this.constructor.prototype)) { return this; } 
    this[key] = val; 
    return this; 
} 

を拡張して、その後に使用することができます

ノード赤のプロジェクトのための
var temp = {}.append(indexID,[]}; 
0

iはインデックス名

var Trend_1={}; 

Trend_1[**'x'**]=Date_TimeArray; 
にアポストロフィを追加する必要がありました
関連する問題