我有一个列表:
var x = [{var: 'test', id:1},{var: 'test2', id:2}, {var: 'test', id: 3}];
我已经查看了文档以进行reduce,但不确定如何将其应用于此数据结构。
我想映射列表并查看id
的每个值,并将x
设置为最高值。
关于如何做到这一点的任何想法?
答案 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);
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)
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;
答案 2 :(得分:0)
您可以检查属性<div id="live-events-trigger-data"></div>
并返回具有较大id
的对象。最后取id
。
优点是,没有虚幻的起始值,因为它从开始检查前两个元素,然后检查任何其他元素与实际的最大对象。
id
答案 3 :(得分:0)
您可以使用Math.max,一个点差运算符和.map:
genmat