const sortArrayByBlacklist = (array, blacklist) => {
const arr = [...array];
arr.sort((a, b) => {
const aIndex = blacklist.indexOf(a);
const bIndex = blacklist.indexOf(b);
if (aIndex === -1 && bIndex === -1) {
return a.localeCompare(b);
} else if (aIndex === -1) {
return 1;
} else if (bIndex === -1) {
return -1;
} else {
return aIndex - bIndex;
}
});
return arr;
};
// 示例
const myArray = ['apple', 'dog', 'cat', 'banana'];
const myBlacklist = ['dog', 'banana'];
const sortedArray = sortArrayByBlacklist(myArray, myBlacklist);
console.log(sortedArray); // ['apple', 'cat', 'banana', 'dog']