【发布时间】:2018-10-11 21:22:12
【问题描述】:
这可能是一个愚蠢的问题,但是我怎样才能根据它的对象的值(升序 - 1 到 6)对下面给定的数组进行排序。
我不能使用对象键作为标识符,因为它是动态的并且会根据用户的设置而改变。我使用注释的解决方案让它工作,但它在 IE 中不起作用,因为 IE 还不支持“Object.values”。
$scope.data = [
{ Type: 6 },
{ Path: 1 },
{ Text: 2 },
{ Name: 3 },
{ Icon: 5 },
{ Case: 4 }
];
$scope.data.sort(function (a, b) {
// This commented solution works fine in Chrome and FF, but not in IE since IE doesn't support "Object.values" yet.
//if (Object.values(a) < Object.values(b))
// return -1;
//if (Object.values(a) > Object.values(b))
// return 1;
//return 0;
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
});
// Desired Result
$scope.data = [
{ Path: 1 },
{ Text: 2 },
{ Name: 3 },
{ Case: 4 },
{ Icon: 5 },
{ Type: 6 }
];
【问题讨论】:
标签: javascript