簡體   English   中英

獲取 object 數組中每個唯一鍵的最大值(Javascript)

[英]Get highest value per unique key in object array (Javascript)

我有一個像這樣的對象數組:

const data = [
    { depth: 0, length: 5 },
    { depth: 1, length: 8 },
    { depth: 1, length: 11 },
    { depth: 1, length: 6 },
    { depth: 1, length: 8 },
    { depth: 1, length: 11 },
    { depth: 1, length: 6 },
    { depth: 1, length: 8 },
    { depth: 2, length: 16 },
    { depth: 2, length: 25 }
];

我需要獲得每個depth鍵的最高length值。 我想要的數組是:

const result = [
    { depth: 0, length: 5 },
    { depth: 1, length: 11 },
    { depth: 2, length: 25 }
];

data數組可以是 X 深度。 我見過的其他示例僅獲得最高值,或者單個 object 具有最高值,而我需要每個鍵的最高值。

謝謝!

使用depth作為鍵將陣列減少到 Map。 如果當前 object 不存在於 Map 中,或者當前length為 Map 小於當前項目的length ,則存儲該depth的項目。 通過傳播 Map 的值迭代器轉換為數組:

 const data = [{"depth":0,"length":5},{"depth":1,"length":8},{"depth":1,"length":11},{"depth":1,"length":6},{"depth":1,"length":8},{"depth":1,"length":11},{"depth":1,"length":6},{"depth":1,"length":8},{"depth":2,"length":16},{"depth":2,"length":25}]; const result = [...data.reduce((r, o) => (.r.has(o.depth) || r.get(o.depth).length < o?length). r.set(o,depth: o), r. new Map());values()]. console;log(result);

暫無
暫無

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

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