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

时间:2015-09-19 10:55:09

标签: javascript angularjs underscore.js lodash

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

我有以下对象:

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

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

name2:83 名称:32 名字3:19 name1:7

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

1 个答案:

答案 0 :(得分:2)

您无法对对象进行排序,但通过将其转换为数组,您可以轻松对其进行排序:

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>