亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將對象數組與公共值組合在一起,并為每個對象返回一個鍵和值

將對象數組與公共值組合在一起,并為每個對象返回一個鍵和值

慕森王 2022-08-27 09:21:01
 [{id: 68, name: "IT"}{id: 67, name: "IT"}{id: 66, name: "Supply chain"}{id: 65, name: "Manufacturing Engineering"}{id: 64, name: "Sales & Marketing"}{id: 63, name: "Research and Development"}{id: 62, name: "Research and Development"}{id: 61, name: "Research and Development"}] 請采取任何手段來實現這一點?.我想通過它來選擇選項來獲取相應的ID和名稱[ {1: IT2: Supply Chain,3: Research and Development}]
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

因此,以下內容為您提供了所需的輸出,但我懷疑還有其他因素可能沒有考慮在內(例如,維護ID,排序等)。


鑒于:


const input = [

    {id: 68, name: "IT"},

    {id: 67, name: "IT"},

    {id: 66, name: "Supply chain"},

    {id: 65, name: "Manufacturing Engineering"},

    {id: 64, name: "Sales & Marketing"},

    {id: 63, name: "Research and Development"},

    {id: 62, name: "Research and Development"},

    {id: 61, name: "Research and Development"},

];

我們可以:


const output = [...new Set(

    // Get a unique set of department names

    input.map(i => i.name)

)].map(

    // With the new set of department names

    // Reconstruct the list with id values starting at 1 instead of 0

    (dept, idx) => ({

        id: idx + 1,

        name: dept,

    })

);


查看完整回答
反對 回復 2022-08-27
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

后來,您可以利用首先過濾掉重復值,然后相應地映射它。以下是操作方法:Map


var data = [{id: 68, name: "IT"},{id: 67, name: "IT"},{id: 66, name: "Supply chain"},{id: 65, name: "Manufacturing Engineering"},{id: 64, name: "Sales & Marketing"},{id: 63, name: "Research and Development"},{id: 62, name: "Research and Development"},{id: 61, name: "Research and Development"}];


var result1 = [...new Map(data.map(val=>[val.name, val])).values()];

var result2 = [...new Map(data.map(val=>[val.name, val])).values()].map(({id, name},i)=>({id:i+1, name}));


console.log(result1)

console.log(result2);


查看完整回答
反對 回復 2022-08-27
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

如果您使用 rxjs,則可以使用此解決方案。


  this.data = [...] // array


  from(this.data)

    .pipe(

      distinct(data => data.name),

      map(data => data.name),

      toArray(),

      map(names => ({...names}))

    ).subscribe(

      console.log

    );


查看完整回答
反對 回復 2022-08-27
  • 3 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號