项目需求:文本的内容由多人进行填报,但是要求文本的排序顺序是固定的
代码:
let arr = ['举头望明月', '疑是地上霜', '低头思故乡', '床前明月光']
let terms = ['床前', '疑是', '举头', '低头']
function sortArrByArrText(arr, terms) {
arr.sort((a, b) => {
let aIndex = terms.findIndex(prefix => a.startsWith(prefix))
let bIndex = terms.findIndex(prefix => b.startsWith(prefix))
if (aIndex !== -1 && bIndex !== -1) {
return aIndex - bIndex
} else if (aIndex !== -1) {
return -1
} else if (bIndex !== -1) {
return 1
} else {
a.localeCompare(b)
}
})
}
sortArrByArrText(arr, terms)
console.log(arr, 'arr'); //['床前明月光', '疑是地上霜', '举头望明月', '低头思故乡']