试图通过属性值来获得对此数组进行排序的最佳方法。
"data": [
{
"id": "1913209a-4b96-4e9f-9377-17cc86cd4465",
"data": [
{
"name": "mid_serial",
"data": {
"editable": false,
"value": "5.65.2.88 - 12338456",
"required": false,
"type": "text"
}
},
{
"name": "status",
"data": {
"editable": false,
"value": "warning",
"required": false,
"type": "text"
}
},
...
]
},
{
"id": "1913209a-4b96-4e9f-9377-17cc86cd4465",
"data": [
{
"name": "mid_serial",
"data": {
"editable": false,
"value": "5.65.2.88 - 12338456",
"required": false,
"type": "text"
}
},
{
"name": "status",
"data": {
"editable": false,
"value": "warning",
"required": false,
"type": "text"
}
},
...
]
}
...
]
所以我将传递“name”属性,并且数组必须按相应的“value”属性val排序。 (它也可以逆转,但这很容易)
提前致谢
答案 0 :(得分:0)
您可以使用Javascript排序功能添加自定义比较器。代码是:
$scope.name = 'status' // Example
data.sort(function(a, b) {
var aValue, bValue;
a.data.forEach(function(element) { // Search the value
if ($scope.name == element.name) aValue = element.data.value;
}
b.data.forEach(function(element) { // Search the value
if ($scope.name == element.name) bValue = element.data.value;
}
return aValue - bValue; // Compare them in order to order the array
})
尝试并告诉我一些事情,我现在无法测试。