[英]How to sort a key value pair of array in javascript
所以我從firebase
獲取了這個數組,我一直在嘗試映射該數組,並且該數組位於鍵值對中
{
A: {name: "test1", views: "20"},
B: {name: "test2", views: "30"},
C: {name: "test3", views: "23"}
}
我想要么映射它們,要么我可以像這樣反轉這個數組
{ C: {}, B: {}, A: {}}
我在 react native 中做所有這些,所以請提出一些解決方案。
如果您只想按字母順序對其進行排序。
const unsorted = {
A: {name: "test1", views: "20"},
B: {name: "test2", views: "30"},
C: {name: "test3", views: "23"}
}
const sorted = {};
Object.keys(unsorted).sort().forEach(key => {
sorted[key] = unsorted[key];
});
或按字母順序反向排序。
Object.keys(unsorted).sort().reverse().forEach(key => {
sorted[key] = unsorted[key];
});
所以我在網上搜索並發現了這個如上所述,你們建議它不是一個數組,它是一個對象,可以這樣排序
let list = Object.entries(snapshot.val())
.sort(function (x, y) {
return x[1].spectators - y[1].spectators;
})
.reverse();
這是用於升序的降序刪除 reverse()
謝謝!
這是一個Object
,要使用.map()
你必須有一個Array
。 在 JavaScript 中,兩者都是 typeof object
但是,Array 原型與 Object 原型有不同的標准方法。 要設置Array
請使用[]
和Objects = {}
。
數組索引是數字,而對象可以有鍵作為 str。
下面是一個使用“數組”的例子!
const values = [ {name: "test1", views: "20"}, {name: "test2", views: "30"}, {name: "test3", views: "23"} ]; // Array = [] const reversed = values.reverse(); console.log(reversed);
顛倒從對象中提取鍵的順序有點煩人,因為您必須將它們全部取出,然后按照您想要的順序將它們全部放回原處:
function reverse(o) {
let entries = Object.entries(o).reverse();
entries.forEach(e => delete o[e[0]]);
entries.forEach(e => o[e[0]] = e[1]);
}
這段代碼通過改變對象來工作,從而最終維護從其他對象到這個有效對象的引用; 如果對象不是默認對象,則更改對象對於維護對象的正確原型也很重要。 如果你想克隆它,你應該小心復制相同的原型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.