我有以下数组结构
[{
name: "Mobile Uploads"
}, {
name: "Profile Pictures"
}, {
name: "Reports"
}, {
name: "Instagram Photos"
}, {
name: "Facebook"
}, {
name: "My Account"
}, {
name: "Twitter"
}]
Run Code Online (Sandbox Code Playgroud)
我要重新排序的阵列,使其按以下顺序:Profile Pictures,Mobile Uploads,Instagram Photos,和后来的对象是alpabetical顺序.
你想要做的是创建一个包含排序异常的对象.然后,您可以编写一个自定义sort()函数来解释您的异常.
var list = [{
name: "Date"
}, {
name: "Mobile Uploads"
}, {
name: "Profile Pictures"
}, {
name: "Fig"
}, {
name: "Instagram Photos"
}, {
name: "Cherry"
}, {
name: "Apple"
}, {
name: "Banana"
}];
var exceptions = {
"Profile Pictures": 1,
"Mobile Uploads": 2,
"Instagram Photos": 3
}
list.sort(function(a, b) {
if (exceptions[a.name] && exceptions[b.name]) {
//if both items are exceptions
return exceptions[a.name] - exceptions[b.name];
} else if (exceptions[a.name]) {
//only `a` is in exceptions, sort it to front
return -1;
} else if (exceptions[b.name]) {
//only `b` is in exceptions, sort it to back
return 1;
} else {
//no exceptions to account for, return alphabetic sort
return a.name.localeCompare(b.name);
}
});
console.log(list);Run Code Online (Sandbox Code Playgroud)