我们可以使用javascript为多个字段排序数据

时间:2014-10-09 07:40:45

标签: javascript jquery json sorting multiple-columns

在我的旅游网站(就像airbnb一样),用户可以按可用性,价格,位置等对记录进行排序......

我的网站数据(记录),只有json格式。我无法从数据库中获取记录。

我的数据记录:

var json = [
        {"id":"1","tagName":"apple",'lat':"37.764121333563985","lng":"-122.43083545083414",'cat':'bus','price':50},
        {"id":"2","tagName":"orange",'lat':"37.760390258066806","lng":"-122.40842161915589",'cat':'bus','price':50},
        {"id":"3","tagName":"banana",'lat':"37.76821074033546","lng":"-122.39946165364097",'cat':'car','price':70},
        {"id":"4","tagName":"watermelon",'lat':"37.76903501995947","lng":"-122.43674595206681",'cat':'bus','price':50},
        {"id":"5","tagName":"pineapple",'lat':"37.775329253488984","lng":"-122.42896304538613",'cat':'car','price':50},
        {"id":"6","tagName":"pineapple",'lat':"37.76808825514635","lng":"-122.42957791610439",'cat':'bus','price':30},
        {"id":"7","tagName":"pineapple",'lat':"37.764609542480706","lng":"-122.43126917941493",'cat':'bus','price':50},
        {"id":"8","tagName":"pineapple",'lat':"37.77486256468261","lng":"-122.40143099838457",'cat':'car','price':20},
        {"id":"9","tagName":"pineapple",'lat':"37.770304718740945","lng":"-122.42489358892846",'cat':'bus','price':50},
        {"id":"10","tagName":"pineapple",'lat':"37.7628338732316","lng":"-122.42631843030665",'cat':'car','price':10}
    ];

我的Javascript代码:

$(json).each(function(i,marker){
    if (cat == marker.cat || price <= marker.price) || ( price <= marker.price && cat == marker.cat){
     var content = 'MY DATA CONTENT USING MARKER';
     $('.result').append(content);  
   }
});

我的条件不起作用。

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

你的if条件#39;括号都搞砸了,试试这个:

if ((cat == marker.cat || price <= marker.price) || ( price <= marker.price && cat == marker.cat))

答案 1 :(得分:0)

$(json).each(function(i,marker){
    if (cat == marker.cat || price <= marker.price) || ( price <= marker.price && cat == marker.cat){
     var content = 'MY DATA CONTENT USING MARKER';
     $('.result').append(content);  
   }

在此代码中,未定义cat的值,您需要将其更改为

this.cat or json[i].cat

访问json值。