我有一組具有不同鍵的物件,我想根據我想要的鍵將物件移動到頂部。
根據狀態給定陣列:“活動”我希望將所有匹配的物件移到頂部
[{name: "abc", age: "20", status: "Active"}, {name: "xyz", age: "21", status: "Inactive"}, {name: "pqr", age: "22", status: "Active"}]
預期輸出:
[{name: "abc", age: "20", status: "Active"}, {name: "pqr", age: "22", status: "Active"}, {name: "xyz", age: "21", status: "Inactive"}]
uj5u.com熱心網友回復:
let list = [{
name: "abc",
age: "20",
status: "Active"
}, {
name: "xyz",
age: "21",
status: "Inactive"
}, {
name: "pqr",
age: "22",
status: "Active"
}]
list.sort((a, b) => (a.status !== "Active") ? 1 : -1)
console.log(list)
產生以下輸出
[
{ name: 'pqr', age: '22', status: 'Active' },
{ name: 'abc', age: '20', status: 'Active' },
{ name: 'xyz', age: '21', status: 'Inactive' }
]
uj5u.com熱心網友回復:
你可以像這樣改變你的代碼。
function handleData(arr, status) {
if(!arr || arr.length == 0) return
for(let i=0; i<arr.length; i ) {
let item = arr[i];
if(item.status == status) {
arr.splice(i, 1);
arr.unshift(item)
}
}
}
let arr = [{name: "abc", age: "20", status: "Active"}, {name: "xyz", age: "21", status: "Inactive"}, {name: "pqr", age: "22", status: "Active"}]
handleData(arr, 'Active')
uj5u.com熱心網友回復:
陣列具有方法Array.sort,您可以在其中傳遞回傳的函式,1, -1 or 0該函式對應于如何移動陣列的元素
const arr = [{
name: "abc",
age: "20",
status: "Active"
}, {
name: "xyz",
age: "21",
status: "Inactive"
}, {
name: "pqr",
age: "22",
status: "Active"
}]
console.log(arr.sort((a, b) => (a.status === b.status) ? 0 : a.status === "Active" ? -1 : 1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409518.html
標籤:
下一篇:將json資料轉換為物件
