开发者

How to sort an array of hashmaps in javascript

I have a small question regarding the sorting of a JavaScript array.

I have an array which holds basically a hashmap: dataOfTheUserArray=new Array(6);, which is basically an array of hashmaps. The map looks like the following:

keys:              values

Symbol              xyz
NumberOfStocks      1o
Price               200

So the array basically contains a map for each symbol.

Now I want to sort the array based on the price of th开发者_运维技巧e stock . So what I did was:

dataOfTheUserArray.sort(sortByPriceBought);

//The call back function is
function sortByPriceBought(a, b) {

    var x = a.Price;
    var y = b.Price;
    return ((x >y) ? -1 : ((x < y) ? 1 : 0));
}

After sorting it when I iterate through the array the highest price is in the first and all the rest is not sorted. Is there something I am doing wrong? I would really appreciate if someone can explain if anything went wrong in the code.


If property, a.Price is a string object, the ordering is made lexically.

Changing the code as follows may solve your problem:

var x = parseInt(a.Price);
var y = parseInt(b.Price);


You can simplify your sorting function using - instead of conditions:

function sortByPriceBought(a, b) {
    return b.Price - a.Price;
}

Make sure, than all elements of array have Price property.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜