javascript:对字典列表进行排序并返回特定键的最高值

时间:2017-11-03 17:04:06

标签: javascript

我有一个列表:

var x = [{var: 'test', id:1},{var: 'test2', id:2}, {var: 'test', id: 3}];

我已经查看了文档以进行reduce,但不确定如何将其应用于此数据结构。

我想映射列表并查看id的每个值,并将x设置为最高值。

关于如何做到这一点的任何想法?

4 个答案:

答案 0 :(得分:1)

您可以使用Array#reduce方法。

var x = [{var: 'test', id:1},{var: 'test2', id:2}, {var: 'test', id: 3}];

var res = x
  // iterate over the array
  .reduce(function(prev, next) {
    // compare the previous value with the current object property

    // use ternary syntax
    return prev < next.id ? next.id : prev;
    
    // or use Math.max
    // return Math.max(prev, next.id);
    
    // set initial value as the least possible value
    // since you want to find the highest
  }, -Infinity);

console.log(res);

使用ES6 arrow function

var x = [{var: 'test', id:1},{var: 'test2', id:2}, {var: 'test', id: 3}];

var res = x.reduce((p, n)=> Math.max(p, n.id), -Infinity);

console.log(res);

答案 1 :(得分:1)

&#13;
&#13;
var x = [{
  var: 'test',
  id: 1
}, {
  var: 'test2',
  id: 2
}, {
  var: 'test',
  id: 3
}];

var y = x.reduce(function (a, b) {
  return Math.max(a, b.id)
}, Number.NEGATIVE_INFINITY);

console.log('y : ', y);
&#13;
.as-console-wrapper { max-height: 100%!important; top: 0; }
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以检查属性<div id="live-events-trigger-data"></div> 并返回具有较大id的对象。最后取id

的值

优点是,没有虚幻的起始值,因为它从开始检查前两个元素,然后检查任何其他元素与实际的最大对象。

id

答案 3 :(得分:0)

您可以使用Math.max,一个点差运算符和.map:

genmat