【问题标题】:Use Underscore/Lodash to sort an object by values into an array of pairs for AngularJS ng-repeat使用 Underscore/Lodash 将对象按值排序到 AngularJS ng-repeat 的对数组中
【发布时间】:2015-09-19 10:55:09
【问题描述】:

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

我有以下物品:

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

我想在前端显示类似这样的东西:

名称2:83 名称:32 名称 3:19 名称1:7

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

【问题讨论】:

  • 首先从中产生一个[key, value]数组,然后对其进行排序。
  • @zerkms,我做了那部分,但我不知道如何从这里对其进行排序。抱歉这么慢。
  • 一开始我没有看到如何应用它 .sortBy(.pairs(topRedemptions), function(n){return n[1]}) 有效
  • 展示你的尝试,不要只问how

标签: javascript angularjs underscore.js lodash


【解决方案1】:

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

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>

【讨论】:

  • 感谢您注意到我需要它按降序排列!
猜你喜欢
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多