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

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

除數字外,如何按字母順序對對象數組進行排序?

除數字外,如何按字母順序對對象數組進行排序?

滄海一幻覺 2023-03-10 15:20:18
我有這個數組:sampleArray = [  {name: 'product-2'},  {name: 'product-15'},  {name: 'product-3'},  {name: 'product-10'}]我想使用 property 對其進行排序name,按字母順序排列,但字符串中的數字除外。我正在sort結合使用localeCompare:sampleArray.sort((a, b) => a.name.localeCompare(b.name))但是,就像name一個包含數字的字符串一樣,我得到了這個:sampleArray = [  {name: 'product-10'},  {name: 'product-15'},  {name: 'product-2'},  {name: 'product-3'}]考慮到數字,我需要以正確的順序獲取它。這會是什么:sampleArray = [  {name: 'product-2'},  {name: 'product-3'},  {name: 'product-10'},  {name: 'product-15'}]我知道如果我只處理數字我可以這樣做:sampleArray.sort((a,b) => a - b)但事實并非如此。我該如何解決這個問題?
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您已經中途String#localeCompare接受了一個選項,您可以在其中對字符串使用自然排序。



const

    array = [{ name: 'product-2' }, { name: 'product-15' }, { name: 'product-3' }, { name: 'product-10' }];


array.sort((a, b) => a.name.localeCompare(

    b.name,

    undefined,

    { numeric: true, sensitivity: 'base' }

));


console.log(array);


查看完整回答
反對 回復 2023-03-10
  • 1 回答
  • 0 關注
  • 81 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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