在AngularJS的ng-repeat中,使用Underscore/Lodash按值将对象排序为一对数组

Use Underscore/Lodash to sort an object by values into an array of pairs for AngularJS ng-repeat

本文关键字:对象 排序 数组 Lodash ng-repeat AngularJS Underscore 使用      更新时间:2023-09-26

我想使用Angular的ng-repeat将信息放在前端的以下对象中。我需要按值对键/值对排序,并按该顺序在数组中从上到下显示它们。

我有以下对象:

{name: 32, name1: 7, name2: 83, name3: 19}

我想在前端显示一些东西就像这样:

name2: 83名称:32name3: 19name1: 7

,键/值对按照值的顺序排序。我相信有一种简单的方法可以做到这一点,但我还没有意识到它。

不能对对象进行排序,但通过将其转换为数组,可以很容易地对其进行排序:

var obj = {name: 32, name1: 7, name2: 83, name3: 19};
var pairs = _.pairs(obj);
var sortedPairs = _.sortBy(pairs, function (p) {return -p[1]});
console.log(sortedPairs);

下一步是显示它们:

<ul>
  <li ng-repeat="item in sortedPairs">
    {{item[0]}}: {{item[1]}}
  </li>
</ul>