因此,我试图获取“项目”数组中“大小”中编号最大的项目。并打印出(“ item1”,“ item2”,“ item3”)中的哪个项目
let items = [
{
item: 'item1',
size: 545
},
{
item: 'item2',
size: 89
},
{
item: 'item3',
size: 789
}
]
所以我尝试了
let sizeMax = Math.max.apply(Math, items.map((o) => {
return o.size;
}))
console.log(sizeMax)
,但是不是ES6方式,我无法弄清楚如何打印尺寸最大的“项目” 拿出名字 我一直在尝试:
items.forEach((item) => {
function arrayMax(item) {
return items.size.reduce((h, j) => Math.max(h, j));
}
console.log(items.item)
但是我不太清楚我做错了什么
答案 0 :(得分:3)
您可以采用扩展语法并映射已破坏的属性。
let items = [{ item: 'item1', size: 545 }, { item: 'item2', size: 89 }, { item: 'item3', size: 789 }],
max = Math.max(...items.map(({ size }) => size));
console.log(max);
要获得最大的item
中的size
,可以通过将geratest大小作为累加器来缩小数组,然后采用通缉属性。
let items = [{ item: 'item1', size: 545 }, { item: 'item2', size: 89 }, { item: 'item3', size: 789 }],
max = items.reduce((a, b) => a.size > b.size ? a : b);
console.log(max.item);
答案 1 :(得分:1)
答案 2 :(得分:1)
let items = [
{
item: 'item1',
size: 545
},
{
item: 'item2',
size: 89
},
{
item: 'item3',
size: 789
}
]
let max = items.reduce((acc, curr) => (acc.size < curr.size ? curr : acc))
console.log('max item: ',max.item);
console.log('max size: ',max.size);
答案 3 :(得分:0)
您可以将Array.prototype.sort
与数组+对象解构分配结合起来:
let items = [{item: 'item1',size: 545},{item: 'item2',size: 89},{item: 'item3',size: 789}];
const [ {item: max} ] = items.sort((a,b) => b.size - a.size);
console.log(max);