簡體   English   中英

在數組JavaScript中獲取最大數量的鍵對值

[英]Getting the largest Number of a key pair value in an Array JavaScript

因此,我試圖獲取“項目”數組中“大小”中編號最大的項目。 並打印出與('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) 

但我無法弄清楚我做錯了什么

您可以采用傳播語法並映射被破壞的屬性。

 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); 

你可以為此使用lodash

Lodash MaxBy

_.maxBy(items, 'size');

 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); 

您可以將Array.prototype.sort與array + object解構分配結合起來:

 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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM