Vue中的sort函數(shù)是一個(gè)非常方便的函數(shù),可以用于對(duì)數(shù)組進(jìn)行排序,讓數(shù)組中的元素按照指定的順序排列。sort函數(shù)接受一個(gè)可選的比較函數(shù),該函數(shù)定義了元素的排序順序。
const array = [3, 2, 1, 5, 4]; array.sort(); console.log(array);
上面代碼的輸出結(jié)果為[1, 2, 3, 4, 5],說明sort函數(shù)默認(rèn)將元素按照ASCII碼進(jìn)行升序排序。如果我們想要按照數(shù)字大小進(jìn)行排序,可以使用比較函數(shù)來指定排序順序。
const array = [3, 2, 1, 5, 4]; array.sort((a, b) =>{ return a - b; }); console.log(array);
這段代碼的輸出結(jié)果為[1, 2, 3, 4, 5],和我們期望的一樣。比較函數(shù)接受兩個(gè)參數(shù)a和b,如果a應(yīng)該排在b前面,則返回一個(gè)負(fù)數(shù),如果a應(yīng)該排在b后面,則返回一個(gè)正數(shù),如果a和b相等,返回0。
sort函數(shù)可以用于對(duì)對(duì)象數(shù)組進(jìn)行排序。如果我們有一個(gè)表示學(xué)生的對(duì)象數(shù)組,每個(gè)對(duì)象包含學(xué)生姓名和成績,我們可以按照成績的大小進(jìn)行排序。
const students = [ {name: '張三', grade: 90}, {name: '李四', grade: 80}, {name: '王五', grade: 70}, {name: '趙六', grade: 60}, ]; students.sort((a, b) =>{ return b.grade - a.grade; }); console.log(students);
這段代碼將學(xué)生對(duì)象按照成績從高到低排序,輸出結(jié)果為:
[ {name: '張三', grade: 90}, {name: '李四', grade: 80}, {name: '王五', grade: 70}, {name: '趙六', grade: 60}, ]
總結(jié)一下,Vue中的sort函數(shù)可以用于對(duì)數(shù)組和對(duì)象數(shù)組進(jìn)行排序,只需要傳入一個(gè)比較函數(shù)來指定排序順序。比較函數(shù)接受兩個(gè)參數(shù),返回一個(gè)負(fù)數(shù)表示第一個(gè)參數(shù)應(yīng)該排在第二個(gè)參數(shù)前面,返回一個(gè)正數(shù)表示第一個(gè)參數(shù)應(yīng)該排在第二個(gè)參數(shù)后面,返回0表示兩個(gè)參數(shù)相等。sort函數(shù)的應(yīng)用場(chǎng)景非常廣泛,在日常開發(fā)中也非常實(shí)用。