2012-05-09 8 views
0

ランダムなキー値のペアを取得しています。配列に割り当てることはできますか?順序付けられていないキーをJs配列に割り当てる

そのここでの問題私はarr[50] = 'abc'のようにそれを割り当てるときに、それが自動的にようにarr[0]arr[1]arr[2]など50件までキーを作成します。

と私は私がここで何を行うことができ、ここで

if(typeof(feedArr.latestRating) == 'object'){ 
        jQuery.each(feedArr.latestRating,function(key,val){alert('key::'+key); 
        if(key in newRatingArr){ 
        //delete the key if already exists 
         newRatingArr.splice(key,1); 

        }else{ 
         //insert the key,value 
         newRatingArr[key] = val; //here is the problem occurs when key is 50 it automatically creates the indexes in the array upto 50 which i dont want 
         // alert('Key between::'+key); 
         // alert('Value between::'+newRatingArr[key]); 
         //newRatingArr.splice(key,0,val); 
        } 
        //alert(key); 
        emptyRate = 0; 

        }); 
       }else{ 
        emptyRate = 1; 
       } 

それを持って、このarr[50=>'abc','40'=>'pqr','53'=>'lmn']

ような配列をしたいですか?私に知らせてください。

答えて

5

の代わりに{}オブジェクトを使用してください。

オブジェクトは、順序付けられていないキー値コンテナとして機能することができます。これは、ここで必要と思われるものです。

// somewhere... 
var newRatingArr = {}; 

// your code. 
var emptyRate = true; 
if (typeof (feedArr.latestRating) == 'object') { 
    jQuery.each(feedArr.latestRating, function (key, val) { 
     newRatingArr[key] = val; 
     emptyRate = false; 
    }); 
} 
+0

SPLICEのような他の機能もすべてオブジェクトで動作しますか? AKX? –

+0

concatやshuffleのような他の配列関数は、ここでオブジェクトを使用する場合にはあまり使用されません。AKX –

+0

しかし、配列のような連続したデータがない場合は、配列に強制しないでください。 – AKX

関連する問題