开发者

How to sort an array of hashmaps in javascript

开发者 https://www.devze.com 2023-01-16 13:34 出处:网络
I have a small question regarding the sorting of a JavaScript array. I have an array which holds basically a hashmap:

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

精彩评论

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