第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

JS,字典列表到列表字典,基于鍵

JS,字典列表到列表字典,基于鍵

大話西游666 2021-12-02 19:36:35
我有一個字典列表,其中有一些屬性,比如一個 url 和一些關于 url 的信息:[{    url:"https://example1.com/a"    something:"ABC"},{    url:"https://example1.com/b"    something:"DEF"},{    url:"https://example2.com/c"    something:"GHI"},{    url:"https://example2.com/d"    something:"JKL"}]現(xiàn)在我想把它分成一個列表字典,根據(jù) url 分組。對于上述,我的目標數(shù)據(jù)結構是這樣的:{    "example1.com" : [{        url:"https://example1.com/a"        something:"ABC"    },{        url:"https://example1.com/b"        something:"DEF"    }],    "example2.com" : [{        url:"https://example2.com/c"        something:"GHI"    },{        url:"https://example2.com/d"        something:"JKL"    }]}在 python 中,這可以使用 itertools 包和一些列表理解技巧來實現(xiàn),但我需要在 javascript/nodejs 中完成。有人可以引導我朝著正確的方向在 javascript 中執(zhí)行此操作嗎?
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

您可以reduce在數(shù)組對象上使用該方法。


let data = [{

    url:"https://example1.com/a",

    something:"ABC"

},{

    url:"https://example1.com/b",

    something:"DEF"

},{

    url:"https://example2.com/c",

    something:"GHI"

},{

    url:"https://example2.com/d",

    something:"JKL"

}];


let ret = data.reduce((acc, cur) => {

  let host = cur['url'].substring(8, 20); // hardcoded please use your own 

  if (acc[host])

    acc[host].push(cur);

  else

    acc[host] = [cur];

  return acc;

}, {})


console.log(ret);


查看完整回答
反對 回復 2021-12-02
?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

const dataFromQuestion = [{

    url:"https://example1.com/a",

    something:"ABC"

},{

    url:"https://example1.com/b",

    something:"DEF"

},{

    url:"https://example2.com/c",

    something:"GHI"

},{

    url:"https://example2.com/d",

    something:"JKL"

}];


function listOfDictionaryToDictionaryOfList(input, keyMapper) {

  const result = {};

  for (const entry of input) {

    const key = keyMapper(entry);

    if (!Object.prototype.hasOwnProperty.call(result, key)) {

      result[key] = [];

    }

    result[key].push(entry);

  }

  return result;

}


function getHost(data) {

  const url = new URL(data.url);

  return url.host;

}


console.log(listOfDictionaryToDictionaryOfList(dataFromQuestion, getHost)); 


查看完整回答
反對 回復 2021-12-02
?
慕的地8271018

TA貢獻1796條經(jīng)驗 獲得超4個贊

data.reduce((groups, item) => {

    let host = new URL(item.url).hostname;

    (groups[host] || (groups[host] = [])).push(item);

    return groups;

}, {});

單行(雖然很神秘)


data.reduce((g, i, _1, _2, h = new URL(i.url).hostname) => ((g[h] || (g[h] =[])).push(i), g), {});



查看完整回答
反對 回復 2021-12-02
  • 3 回答
  • 0 關注
  • 416 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號