亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試按街道地址對對象數組進行排序,但排序又回來了,不知道如何調整我的邏輯以正確排序

嘗試按街道地址對對象數組進行排序,但排序又回來了,不知道如何調整我的邏輯以正確排序

森欄 2022-07-08 16:58:58
我有一個 React/TypeScript 組件,我試圖按其街道地址以升序或降序對一組 Location 對象進行排序?,F在我有一個簡單的內聯排序函數,它比較街道地址值,并根據選擇是升序(a > b)還是降序(b > a)它比較并按該順序返回列表。我遇到的無法預料的問題是,由于街道地址屬性以字符串形式返回,我認為門牌號的數值沒有被正確比較,因此我的列表以看似隨機排序的排序返回。例如升序將返回:13151 LAKE SHORE DR2001 ROGER ST S5101 SHANNON AVE S STE 2B2001 ROGER S ST STE B210520 ITALY S AVE我想象的預期回報將是所有以門牌號 1 開頭的地址,然后是 2 號、3 號等等。這就是我的排序函數現在的樣子:// Function for asccending order    if (sort === 'alphaAsc') {      filteredLocations = filteredLocations.sort((a, b) =>        a.addressLine1 > b.addressLine1 ? 1 : 0      );    }// Function for descending sort    if (sort === 'alphaDesc') {      filteredLocations = filteredLocations.sort((a, b) =>        b.addressLine1 > a.addressLine1 ? -1 : 0      );    }
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

像這樣的東西應該工作:


// Function for asccending order

    if (sort === 'alphaAsc') {

      filteredLocations = filteredLocations.sort((a, b) =>

        a.addressLine1 > b.addressLine1 ? 1 : a.addressLine1 < b.addressLine1 ? -1 : 0

      );

    }



// Function for descending sort

    if (sort === 'alphaDesc') {

      filteredLocations = filteredLocations.sort((a, b) =>

        b.addressLine1 > a.addressLine1 ? -1 : a.addressLine1 < b.addressLine1 ? 1 : 0

      );

    }


查看完整回答
反對 回復 2022-07-08
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

對于每個過濾器函數,如果對象 b 應位于對象 a 之前,則返回 1,如果對象 a 應位于對象 b 之前,則返回 -1,如果對象的順序正確,則返回 0。


if (sort === "alphaAsc") {


  filteredLocations = filteredLocations.sort((a, b) => {


  if (a.addressLine1 < b.addressLine1) return -1;

  if (a.addressLine1 > b.addressLine1) return 1;

  return 0;


  });

};


if (sort === "alphaDesc") {


  filteredLocations = filteredLocations.sort((a, b) => {


  if (a.addressLine1 > b.addressLine1) return -1;

  if (a.addressLine1 < b.addressLine1) return 1;

  return 0;


  });

};


查看完整回答
反對 回復 2022-07-08
  • 2 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號