亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS:使用_orderBy()對嵌套數組進行排序時保留頂級鍵

JS:使用_orderBy()對嵌套數組進行排序時保留頂級鍵

守著一只汪 2022-08-27 09:41:47
我正在嘗試用_orderBy()進行排序和數組,它有一個不幸的副產品,即吹走頂級數組鍵!我需要能夠按這些頂級鍵以及子鍵進行排序(它做得很好)。bigArray = {  "22H7564": {  //  <------  these are the top level keys    "name":"Thor",    "age:"600",    "height":187,  },  "20H3211": {    "name":"Mesa",    "age:"42",    "height":120,  },  "27H4506": {    "name":"Jesper",    "age:"122",    "height":143,  },}這是排序但無聊的結果():_orderBy(BigArray, 'name', 'desc')bigArray = {  "0": {  //  <------  FRAAACK!  i need these!    "name":"Jesper",    "age:"122",    "height":143,  },  "1": {    "name":"Mesa",    "age:"42",    "height":120,  },  "2": {    "name":"Thor",    "age:"600",    "height":187,  },}有沒有辦法對這些頂級鍵進行排序和保留?我也需要能夠對這些進行排序。
查看完整描述

2 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

在@Paul的啟發性例子引發的大量研究之后,我終于偶然發現了這個解決方案,不是文章,而是Max Loh 在這篇博客文章的最底部的評論。這是這個問題的解決方案,它工作得很好。只需要在下游代碼中調整兩件事。無論如何。

let newArray= Object.entries(bigArray).map(e => ({ id: e[0], data: e[1] }))

這有效地將我的對象轉換為一個數組,我能夠輕松地使用該數組進行排序。aa,我學到了更深層次的JS來啟動。雙贏。:)_.orderBy

希望這對其他人有所幫助。


查看完整回答
反對 回復 2022-08-27
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

那是因為你實際上是一個對象,沒有數組。將其定義為數組,即可獲得所需的結果。bigArray[]


bigArray = [{

  "22H7564": {  //  <------  these are the top level keys

    "name":"Thor",

    "age":"600",

    "height":187,

  },

  "20H3211": {

    "name":"Mesa",

    "age":"42",

    "height":120,

  },

  "27H4506": {

    "name":"Jesper",

    "age":"122",

    "height":143,

  },

}]


console.log(_.orderBy(bigArray, 'name', 'desc'));

<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>


查看完整回答
反對 回復 2022-08-27
  • 2 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號