【JS30】Day17:Sort Without Articles

javascript 30day

目標:排除某些文字下進行陣列排序

一、排序陣列

const sortedBands = band.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});

將原本的陣列做排序,但因為有aanthe等冠詞,造成無法正確依照字母順序做排序。

二、使用正規表示法過濾冠詞

function strip(bandName) {
return bandName.replace(/^(a |the |an )/i, '').trim();

三、排序過濾好的陣列

const sortedBands = bans.sort((a,b)=> strip(a):strip(b) ? 1:-1);

這邊使用三元運算子及箭頭函式。

四、渲染 DOM

document.querySelector('#bands').innerHTML = sortedBands.map(band => `<li>${band}</li>`).join('');

這邊加上join();是因為在陣列裡面,字串的區隔是逗號,
如果不寫入join,則會把逗號一起渲染。

使用技巧

  • 正規表示法
  • map
  • join
  • sort
【JS30】Day18:Adding Up Times with Reduce 【JS30】Day16:Mouse Move Shadow

評論

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×