将无序密钥分配给Js数组

时间:2012-05-09 19:11:27

标签: javascript arrays

我得到一个随机键值对,我可以将它分配给一个数组吗?

当我将其分配为arr[50] = 'abc'时会出现问题,它会自动创建最多50个密钥,例如arr[0]arr[1]arr[2]等等。

我想要一个像arr[50=>'abc','40'=>'pqr','53'=>'lmn']

这样的数组

我在这里

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;
                }

我可以在这做什么?请告诉我。

1 个答案:

答案 0 :(得分: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;
    });
}