我正試圖對一個discord機器人進行排序,以顯示前三名成員。然而,我一直得到的錯誤是:
JavaScript錯誤。Uncaught TypeError: guildStats.slice
這是我所嘗試的:
這是我所嘗試的。
var guildStats = {
'1234567': {
xp: 95,
level: 0,
last_message: 1631181685724,
invited: {},
invited_by: 0.
},
'0987654': {
xp: 13,
level: 0,
last_message: 1631181527799,
invited: {},
invited_by: 0。
},
'243562345': {
xp: 18,
level: 0,
last_message: 1631181537020,
invited: {},
invited_by: 0.
},
'76533465': {
xp: 14,
level: 0,
last_message: 1631181536875,
invited: {},
invited_by: 0.
},
'34667634567': {
xp: 8,
level: 0,
last_message: 1631181659142,
invited: {},
invited_by: 0。
},
'346534': {
xp: 98,
level: 0,
last_message: 1631181638743,
invited: {},
invited_by: 0.
},
'34343677677886': {
xp: -63,
level: 0,
last_message: 1631181584314,
invited: {},
invited_by: 0.
},
'987654345676543': {
xp: 20,
level: 0,
last_message: 1631181589153,
invited: {},
invited_by: 0。
},
'75634576786588': {
xp: -140,
level: 0,
last_message: 1631181593304,
invited: {},
invited_by: 0.
},
'343434556566': {
xp: 43,
level: 0,
last_message: 1631181663340,
invited: {},
invited_by: 0.
}
};
var byXP = guildStats.slice(0)。
byXP.sort(function(a,b) {
return a.xp - b.xp;
});
document.write(byXP)。
我想輸出的內容是
The top 3 members by XP are:
1. 346534。
2. 1234567[/span].
3. 3434345566
我知道我在什么地方搞砸了。
我如何在guildStats中按子物件的鍵xp的值對所有物件進行排序
謝謝你的幫助。
uj5u.com熱心網友回復:
你可以使用Object.fromEntries()來把你的物件變成一個[key,value]對的陣列。
然后我們可以使用Array.slice()對xp進行排序并回傳前三個條目。
var guildStats = { '1234567'/span>: { xp: 95, level: 0, last_message: 1631181685724, invited: {}, invited_by: 0 }, '0987654': { xp: 13, level: 0, last_message: 1631181527799, invited: {}, invited_by: 0 }, '243562345'/span>: { xp: 18, level: 0, last_message: 1631181537020, invited: {}, invited_by: 0 }, '76533465'/span>: { xp: 14, level: 0, last_message: 1631181536875, invited: {}, invited_by: 0 }, '34667634567'/span>: { xp: 8, level: 0, last_message: 1631181659142, invited: {}, invited_by: 0 }, '346534'/span>: { xp: 98, level: 0, last_message: 1631181638743, invited: {}, invited_by: 0 }, '34343677677886'/span>: { xp: -63, level: 0, last_message: 1631181584314, invited: {}, invited_by: 0 }, '987654345676543'/span>: { xp: 20, level: 0, last_message: 1631181589153, invited: {}, invited_by: 0 }, '75634576786588'/span>: { xp: -140, level: 0, last_message: 1631181593304, invited: {}, invited_by: 0 }, '343434556566': { xp: 43, level: 0, last_message: 1631181663340, invited: {}, invited_by: 0 }; invited_by: {}. };
var byXP = Object.entries(guildStats)。
byXP.sort(function([keya,valuea], [keyb,valueb]) {
return valueb.xp - valuea.xp。
});
console.log('XP的前三名成員是:')。
byXP.slice(0,3)。 forEach(([key, member],idx) => console. log(`${idx 1}. ${key}, xp: ${member.xp}`));
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/310864.html
標籤:
上一篇:c#在Excel中使用MicrosoftInterop對行進行排序
下一篇:在R中組織資料的行數
