1

これはかなり簡単なはずですが、ここで少し混乱しています。このオブジェクトを埋めたい:

var obj = { 2:some1, 14:some2, three:some3, XX:some4, five:some5 };

しかし、最初はこれがあります:

var obj = {};

for を作成していますが、追加する方法がわかりません。push() を使用していましたが、機能していません。何か助けはありますか?

4

3 に答える 3

3

.push()インデックスの代わりにカスタム キーを使用するため、javascript OBJECT を使用することはできません。これを行う方法は、次のようになります。

var obj = {};

for (var k = 0; k<10; k++) {
    obj['customkey'+k] = 'some'+k;
}

これは以下を返します:

obj {
    customkey0 : 'some0',
    customkey1 : 'some1',
    customkey2 : 'some2',
    ...
}

array:['some1','some2']は基本的に and object: に似ていることに注意 してください。{ 0 : 'some1', 1 : 'some2' } ここで、オブジェクトは「インデックス」(0、1 など) を STRING キーで置き換えます。お役に立てれば。

于 2013-04-15T17:17:45.230 に答える
1

push()配列で使用するためのものですが、オブジェクトを作成しています。

オブジェクトにプロパティを追加するには、いくつかの方法があります。

obj.one = some1;

また

obj['one'] = some1;
于 2013-04-15T17:15:01.800 に答える
0

次のような単純な関数を記述します。

 function pushVal(obj, value) {
     var index = Object.size(obj);
     //index is modified to be a string.
     obj[index] = value;
 }

次に、コードでオブジェクトに値を追加する場合は、次のように呼び出すだけです。

  for(var i=0; i<someArray.length; i++) {
      pushVal(obj, someArray[i]);
   }

私が使用したサイズ関数については、こちらを参照してください。for ループからインデックスを使用することは可能ですが、この 1 つのオブジェクトに複数の配列を追加する場合は、私の方法で競合するインデックスを回避できます。

編集

オブジェクトを作成するために、質問の例でキーを変更したことを確認すると、次を使用できます。

function pushVal(obj, value, key) {
     //index is modified to be a string.
     obj[key] = value;
 }

 or 

 obj[key] = value;     

キー値をどのように決定するのかわかりません。そのため、その情報がなければ、オブジェクトを再作成するソリューションを作成できません (そのままでは、ランダムに表示されます)。

于 2013-04-15T17:19:43.860 に答える