2016-10-05 5 views
1

#32からループを開始するオブジェクトまたは配列を作成したいと思います。私はこのような何か試してみました:特定の番号から始まるオブジェクトまたは配列を作成する方法は?

var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}]; 

これが私のために動作しませんでしたが、私はこのようなループを実行しようとしました:

for(var i=32; i < test.lenght; i++) { 
    console.log(test[i].recID); 
} 

私はこれが可能であれば不思議とどのように私の物です/配列は32から私のループを開始できるように構造化されている必要がありますか?誰かが助けてくれたら教えてください。

+0

Object.keys(test).length // 3 
の特性の

Object.keys(test).forEach(function (key, i, keys) { // test[k] ... }); 

カウントと

test[33].optionalCol 

反復してプロパティにアクセスすることを可能にします'' test.lenght'ではなく、それが単なるものかどうかは分かりませんタイプミス。 – Corporalis

+0

は32インデックスですか?それともrecIDに関連していますか?あなたはrecID = 32のどこでiteratingを開始する必要がありますか? –

+0

また、テストパラメータは配列ではなく、オブジェクトです。インデックス化によって要素に到達することはできません(これがtest [32]が機能しない理由です) –

答えて

2

何がやりたいことは、このような連想配列を使用することです:

var test = { 
    32: "first", 
    33: "last", 
    34: "age" 
} 

あなたはこのようにオブジェクトを反復処理することができます。

for (t in test) { 
    console.log(test[t]) 
} 

それとも、このようにすばやく項目にアクセス:

console.log(test[33]) 

jsfiddle:https://jsfiddle.net/xo0vuejt/

+0

@MartinGotteweisどのように私はテスト変数の長さを確認することができますか?通常、私はtest.lengthでこれをやっていましたが、私はこの場合にうまくいくかどうかはわかりません。 –

+1

'.length'は配列専用です。 'Object.keys(test).length'を使うことができます。 'Object.keys()'はオブジェクトを受け取り、オブジェクトのキーの配列を返します。 –

1

数値をキーとして、内部にあるオブジェクトを使用して、指定した例の値を反映させることができます。

var test = { 
    32: { 
     'recID': "32", 
     'optionalCol': "first" 
    }, 
    33: { 
     'recID': "33", 
     'optionalCol': "last" 
    }, 
    34: { 
     'recID': "34", 
     'optionalCol': "age" 
    } 
}; 

この構造は、それが `test.lengthなければならないオブジェクト

関連する問題