How to sort an array of objects by multiple fields?

后端 未结 30 2308
北恋
北恋 2020-11-21 11:34

From this original question, how would I apply a sort on multiple fields?

Using this slightly adapted structure, how would I sort city (ascending) & then price (

30条回答
  •  清酒与你
    2020-11-21 12:27

    Another way

    var homes = [
        {"h_id":"3",
         "city":"Dallas",
         "state":"TX",
         "zip":"75201",
         "price":"162500"},
        {"h_id":"4",
         "city":"Bevery Hills",
         "state":"CA",
         "zip":"90210",
         "price":"319250"},
        {"h_id":"6",
         "city":"Dallas",
         "state":"TX",
         "zip":"75000",
         "price":"556699"},
        {"h_id":"5",
         "city":"New York",
         "state":"NY",
         "zip":"00010",
         "price":"962500"}
        ];
    function sortBy(ar) {
      return ar.sort((a, b) => a.city === b.city ?
          b.price.toString().localeCompare(a.price) :
          a.city.toString().localeCompare(b.city));
    }
    console.log(sortBy(homes));

提交回复
热议问题