簡體   English   中英

基於 object 數組屬性減少對象數組

[英]Reduce an array of objects based on an object array property

我需要一些 JavaScript/NodeJS 專家的幫助。 我正在使用 NodeJS 的 v14。

我想創建一個 function 作為輸入這種數組(假設它是一個團隊列表):

[
    {
        name: 'IT',
        tags: ['Department', 'Section', 'Organizational']
    },
    {
        name: 'Male',
        tags: ['Gender', 'Organizational']
    },
    {
        name: 'Foo',
        tags: []
    }
 ]

...並以 output的形式返回按標簽名稱列出的團隊列表,如下所示:

// Output:
{
    Department: 'IT',
    Section: 'IT',
    Organizational: 'IT, Male',
    Gender: 'Male'
}

object 鍵的順序以及團隊名稱的順序無關緊要。 我可以用幾行代碼很容易地做到這一點,但我很確定使用我們的一些魔法map()reduce()函數和其他實用程序(如傳播)很容易做到這一點。

任何人都可以幫助我以優化的方式實現這一目標?

謝謝!

嘗試這個:

 const organization = [ { name: 'IT', tags: ['Department', 'Section', 'Organizational'] }, { name: 'Male', tags: ['Gender', 'Organizational'] }, { name: 'Foo', tags: [] } ] const result = organization.reduce((acum, current) => { current.tags.forEach(tag => { if(acum[tag]) acum[tag] = `${acum[tag]}, ${current.name}` else acum[tag] = current.name }) return acum },{}) console.log(result)

暫無
暫無

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

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