javascript - Vue通过表格中的选定属性对对象数据进行排序
问题描述
我从我的 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
})
}
}
但后来桌子是空的。
解决方案
您不能将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)
推荐阅读
- javascript - 如何将数组元素映射到输入?
- python - 在 Airflow DAG 中调用 Google 云函数
- apostrophe-cms - ApostropheCMS - 错误:不能从嵌套在另一个对 render() 调用中的 Nunjucks 辅助函数调用 render()
- rest - 当访问令牌无效时,带有 CORS 的 Yii2 错误
- javascript - 如何以优化的方式从javascript中向后提取数字
- angular - 仅在特定的 component.html 中包含外部 javascript 文件
- c++ - 从 C++ Windows 服务中获取当前登录的用户名
- ruby-on-rails - 如何形成正则表达式以在路径参数中仅接受 IPv4 或 IPv6 特定 IP 值
- ios - 如何知道后台任务是否快速完成?
- java - 如何用lottie动画制作一个like按钮?