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

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

如何使用 lodash keyBy 創建哈希對象?

如何使用 lodash keyBy 創建哈希對象?

POPMUISE 2022-10-08 10:01:18
我有這樣的學校數據:[  {    "details": {      "campus": [        {          "address": "115-119...",          "campusName": "blah",          "email": "blah",        }      ],      "colour": "#640E27",      "schoolCode": "8383"    },    "enrolled": true,    "id": "8383"  }]我需要創建一個以學校 ID 作為鍵,以學校顏色作為其值的哈希    {'8383' : '#640E27'}我正在使用 lodash  const hash = keyBy(action.payload, 'id');  const reducedHash = pickBy(hash, item => item.details.colour);但是,輸出仍然具有整個對象的值,而不僅僅是顯示顏色值。如何實現 id 和 color 作為 hash 的鍵值?
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

lodash keyBy 可能不是您用例的最佳解決方案,您可以使用array.reduce方法:


action.payload.reduce((accumulator, currentValue) => {

  accumulator[currentValue.id] = currentValue.details.colour;

  return accumulator;

}, {});


查看完整回答
反對 回復 2022-10-08
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

你可以試試這段代碼,Array.reduce 也能做同樣的工作。


 let arr = [

    {

      details: {

        campus: [

          {

            address: '115-119...',

            campusName: 'blah',

            email: 'blah',

          },

        ],

        colour: '#640E27',

        schoolCode: '8383',

      },

      enrolled: true,

      id: '8383',

    },

  ];


  const reducedHash = arr.reduce((acc, data) => {

    return { ...acc, ...{ [data.id]: data.details.colour } };

  }, {});


查看完整回答
反對 回復 2022-10-08
?
白衣染霜花

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

使用.forEach或.reduce


var data = [

  {

    "details": {

      "campus": [

        {

          "address": "115-119...",

          "campusName": "blah",

          "email": "blah",

        }

      ],

      "colour": "#640E27",

      "schoolCode": "8383"

    },

    "enrolled": true,

    "id": "8383"


  }

];

var res = {};

data.forEach(({id, details})=>{

 res[id] = details.colour

});


console.log(res);


//Reduce


var res2 = data.reduce((acc, {id, details})=>{

  return {...acc, ...{[id]:details.colour}}

}, {});


   console.log(res2)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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