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

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

Vue 按表中選定的屬性對對象數據進行排序

Vue 按表中選定的屬性對對象數據進行排序

藍山帝景 2023-03-10 16:48:59
我從我的 api json 對象列表中得到這樣的信息:"object123": {  "selected": false,   "value": 0.54}, 在前端,我有一個表格,其中我用復選框顯示這些數據,如何通過這個選擇屬性對這些數據進行排序?你能舉個小例子嗎?我試過sortedData: function() {  if(this.calculated) {    return this.calculated.sort(function(a, b) {      return a.selected > b.selected    })  }}但后來桌子是空的。
查看完整描述

1 回答

?
動漫人物

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

您不能將sort()函數用于對象。為了使您的代碼工作,您應該轉換this.calculated為數組。


您可以使用此代碼片段將對象轉換為數組。


let calculated = {

  "object1": {

    "selected": false,

    "value": 1

  },

  "object2": {

    "selected": false,

    "value": 20

  },

  "object3": {

    "selected": false,

    "value": 4

  },

  "object4": {

    "selected": false,

    "value": 24

  },

  "object5": {

    "selected": false,

    "value": 6

  },

  "object6": {

    "selected": false,

    "value": 0.26

  },

  "object7": {

    "selected": true,

    "value": 1.52

  },

  "object8": {

    "selected": false,

    "value": 0.54

  },

  "object9": {

    "selected": false,

    "value": 4.27

  }

}


let calculatedArray = []


for (const [key, value] of Object.entries(calculated)) {

  calculatedArray.push({

    id: key,

    ...value

  })

}


sortedData = function() {

  if(calculatedArray) {

    return calculatedArray.sort(function(a, b) {

      return b.selected - a.selected

    })

  } else {

    return []

  }

}


console.log(sortedData())

console.log(calculatedArray)


查看完整回答
反對 回復 2023-03-10
  • 1 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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