[英]Using an array of strings to sort an array of objects in Javascript
[英]Sort by multiple strings in Array using Javascript
我正在嘗試按多個字符串對數組進行排序,但結果很短。 這是可能的還是在下面寫一些東西來實現這一點?
不起作用:
const colorArr = ["Red", "Blue", "Green"]
const colorMap = colorArr.map((a) => a);
const newArr = data.sort((a, b) => {
return (
(a.credits.credit.value !== colorMap) - (b.credits.credit.value !== colorMap)
);
});
console.log("newArr========", newArr)
這可行,但條件越多,時間就越長......
const data = [
{
credits: {
credit: {
value: "Red",
},
},
},
{
credits: {
credit: {
value: "Blue",
},
},
},
{
credits: {
credit: {
value: "Green",
},
},
},
{
credits: {
credit: {
value: "Red",
},
},
},
{
credits: {
credit: {
value: "Red",
},
},
},
{
credits: {
credit: {
value: "Blue",
},
},
},
];
const nameActor = "Red";
const nameEp = "Blue";
const nameDirector = "Green";
const newArr = data.sort((a, b) => {
return (
(a.credits.credit.value !== nameActor) - (b.credits.credit.value !== nameActor) ||
(a.credits.credit.value !== nameEp) - (b.credits.credit.value !== nameEp) ||
(a.credits.credit.value !== nameDirector) - (b.credits.credit.value !== nameDirector)
);
});
const colorOrder = ['Red', 'Blue', 'Green'];
const order = data.sort(
(a, b) =>
colorOrder.indexOf(a.credits.credit.value) -
colorOrder.indexOf(b.credits.credit.value)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.