2012-03-16 5 views
4

から取られたキー名:プッシュ私が配列した変数

$('li.page').each(function() { 
     var datatype = $(this).attr('data-type'); 
     var info = $(this).attr('data-info'); 
     pages_order.push({datatype:info}); 
    }); 

しかし、このコードにはない:

var pages = new Array(); 

を私はこのようなこの配列に私のページデータをプッシュしますdatatypeを変数に置き換え、データ型stringをキーとして置きます。 実際の文字列の値をキー名にするにはどうすればよいですか?

+0

可能性のある重複した[キー/値ペアのJavaScriptの配列は、キーのリテラル変数名を使用します](https://stackoverflow.com/questions/18491828/javascript-array of key-value-pairs-for-key-for-literal-variable-name-for) – Azteca

答えて

1

ページごとに2つの情報を保存するように見えます。

pages_order.push([datatype, info]); 
9

私は最終的にあなたがやろうとしたものを見ました:

var pages = new Array(); 
$('li.page').each(function() { 
    var datatype = $(this).attr('data-type'); 
    var info = $(this).attr('data-info'); 
    var temp = {}; 
    temp[datatype] = info; 
    pages_order.push(temp); 
}); 
1

あなたはそれが評価されますコンテキストでdatatypeを使用する必要があなたの代わりに、オブジェクトの配列を押すことによって、それを行うことができます。

var pages = []; 
$('li.page').each(function() { 
    var datatype = $(this).attr('data-type'), 
     info = $(this).attr('data-info'), 
     record = {}; 
    record[datatype] = info; 
    pages_order.push(record); 
}); 

あなただけそれが,で区切られた複数の割り当てを続けることができます1 varを必要としています。

だけ配列リテラルあなたはむしろvarキーワードを再利用するよりも、変数宣言の間にコンマを入れることができます[]

2
$('li.page').each(function() { 

    //get type and info, then setup an object to push onto the array 
    var datatype = $(this).attr('data-type'), 
     info = $(this).attr('data-info'), 
     obj = {}; 

    //now set the index and the value for the object 
    obj[datatype] = info; 
    pages_order.push(obj); 
}); 

お知らせを使用new Arrayを使用する必要はありません。

0

あなたがキーと値をプッシュする単一行の下に追加することができます:の

pages_order.yourkey = value; 
関連する問題