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

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

重新排列javascript對象結(jié)構(gòu)

重新排列javascript對象結(jié)構(gòu)

UYOU 2021-11-12 18:21:05
我想重新排列一個物體的結(jié)構(gòu),我從昨天開始就卡住了,所以我需要你的重要幫助。目前,結(jié)構(gòu)如下:var data = [{    id: 14,    language: "english",    title: "I am a new article",    bodyText: "Article Content",    lang: "eng",    keywords: ["key1", "key2"]  },  {    id: 1,    language: "greeks",    title: "Ειμαι ενα καινουρειο αρθρο",    bodyText: "Κυριο μερο? Αρθρου",    lang: "gr",    keywords: ["key1", "key2"]  },  {    id: 1,    language: "espanol",    title: "Soy un nuevo articulo",    bodyText: "Soy un nuevo articulo",    lang: "es",    keywords: ["key1", "key2"]  },]我想將結(jié)構(gòu)重新排列為以下格式:var data = [{  id: 1,  language: {    es: {      title: "Spanish Article",      bodyText: "Content in Spanish"    },    gr: {      title: "Greek Article",      bodyText: "Content in Grecce"    }  },  id: 2,  language: {    en: {      title: "English Article",      bodyText: "Content in English"    }  }}];我編寫了以下代碼來完成任務(wù),但沒有運(yùn)氣。var arr = [];let result = data.reduce(function(c, v) {  console.log(v.id);  /*   console.log(c);   */  c[v.id] = c[v.id] || {};  c[v.id][v.lang] = c[v.id][v.lang] || {    title: v.title,    bodyText: v.bodyText,    keywords: v.keywords  };  arr.push(c)  return c;}, {});console.log(arr);我得到一個如下所示的對象:[{id:1,es:{title:"Spanish Article",bodyText:"Content in Spanish"},gr:{title:"Greek Article",bodyText:"Content in Grecce"},id:2,en:{title:"English Article",bodyText:"Content in English"}}]歡迎任何推薦,提前感謝社區(qū)!
查看完整描述

2 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊

您的目標(biāo)數(shù)據(jù)模型似乎有點(diǎn)不理想,因?yàn)槟幸粋€具有唯一 id 的數(shù)組,作為以 id 作為鍵的對象,它的性能可能更高,但您也可以使用數(shù)據(jù)模型:


var data = [

  {

    id: 14,

    language: "english",

    title: "I am a new article",

    bodyText: "Article Content",

    lang: "eng",

    keywords: ["key1", "key2"]

  },

  {

    id: 1,

    language: "greeks",

    title: "Ειμαι ενα καινουρειο αρθρο",

    bodyText: "Κυριο μερο? Αρθρου",

    lang: "gr",

    keywords: ["key1", "key2"]

  },

  {

    id: 1,

    language: "espanol",

    title: "Soy un nuevo articulo",

    bodyText: "Soy un nuevo articulo",

    lang: "es",

    keywords: ["key1", "key2"]

  }

];

  

console.log(data.reduce(function(result, entry) {

  var id_index = result.map(function(e) { return e.id; }).indexOf(entry.id);

  var id_element;

  

  if (id_index === -1) {

    id_element = {id: entry.id, language: {}};

  } else {

    id_element = result[id_index];

  }

  

  id_element.language[entry.lang] = {

    title: entry.title,

    bodyText: entry.bodyText

  };

  

  if (id_index === -1) {

    result.push(id_element);

  }

  

  return result;

}, []))


查看完整回答
反對 回復(fù) 2021-11-12
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個贊

您可以解構(gòu)屬性并稍后使用哈希表中的值。


主要部分是獲取具有l(wèi)anguage屬性的初始對象。


var data = [{ id: 14, language: "english", title: "I am a new article", bodyText: "Article Content", lang: "eng", keywords: ["key1", "key2"] }, { id: 1, language: "greeks", title: "Ειμαι ενα καινουρειο αρθρο", bodyText: "Κυριο μερο? Αρθρου", lang: "gr", keywords: ["key1", "key2"] }, { id: 1, language: "espanol", title: "Soy un nuevo articulo", bodyText: "Soy un nuevo articulo",     lang: "es", keywords: ["key1", "key2"] }],

    result = data.reduce((c, { id, lang, title, bodyText, keywords }) => {

        c[id] = c[id] || { id, language: {} };

        c[id].language[lang] = { title, bodyText, keywords };

        return c;

    }, {}),

    array = Object.values(result);


console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對 回復(fù) 2021-11-12
  • 2 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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