我想根據服裝值對表格進行排序,如下所示,我們如何從反應端撰寫邏輯?
Order is no s, no c, ready, pub
因為我想對以下資料進行排序 const data = [ { name: 'Harry', sort: 'no c', }, { name: 'Don', sort: 'no s', }, { name: 'Arc' , sort: 'pub', }, { name: 'Park', sort: 'ready', }, ];
uj5u.com熱心網友回復:
您可以創建一個排序值陣列以對資料進行排序,然后使用過濾器函式獲取這些值并將其推送到輸出陣列。
例如
let output = []
let order = ['no s','no c','pub','ready']
const data = [ { name: 'Harry', sort: 'no c', }, { name: 'Don', sort: 'no s', }, { name: 'Arc', sort: 'pub', }, { name: 'Park', sort: 'ready', }]
for(const o of order){
output.push(...data.filter(d=>d.sort === o))
}
console.log(output)
uj5u.com熱心網友回復:
const arr = [
{ name: 'Harry', sort: 'no c', },
{ name: 'Don', sort: 'no s', },
{ name: 'Arc', sort: 'pub', },
{ name: 'Park', sort: 'ready', },
];
const order = [ 'no s', 'no c', 'ready', 'pub'];
const orderedArr = [];
order.forEach(element => {
const item = arr.find((obj) => obj.sort === element);
orderedArr.push(item);
});
uj5u.com熱心網友回復:
data.sort((obj1, obj2) => {
const getOrder = (sort) => {
switch (sort) {
case 'no s':
return 1;
case 'no c':
return 2;
case 'ready':
return 3;
case 'pub':
return 4;
default:
return 5;
}
}
const comparison = getOrder(obj1.sort) - getOrder(obj2.sort);
return comparison;
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/494425.html
標籤:javascript 反应 数组 排序 逻辑
上一篇:如何通過VBA添加新記錄
下一篇:如何從物件逗號分隔的陣列中獲取值
