题目
重新排列日志文件:https://leetcode-cn.com/problems/reorder-data-in-log-files/
解题思路
- 区分字母日志和数字日志,放到两个数组中保存
- 字母日志排序
2.1 判断除标识符外的内容是否相同
2.2 不相同时,按字母顺序排序
2.3 相同时,按标识符排序 - 合并字母日志、数字日志
代码
/**
* @param {string[]} logs
* @return {string[]}
*/
var reorderLogFiles = function(logs) {
let ditArr = [], numArr = []
logs.forEach(item=>{
const arr = item.split(' ')
isNaN(arr[1]) ? ditArr.push(item) : numArr.push(item)
})
ditArr = compare(ditArr)
return [...ditArr, ...numArr]
};
function compare(arr){
const sortArr = arr.sort((a,b)=>{
const [aIdentifier, ...aContent] = a.split(' ')
const [bIdentifier, ...bContent] = b.split(' ')
if(aContent.join(' ')===bContent.join(' ')){
return aIdentifier < bIdentifier ? -1 : 1
}else{
return aContent < bContent ? -1 : 1
}
})
return sortArr
}