recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment créer dynamiquement une table à partir d’un tableau ?

J'ai un cas d'utilisation pour créer un tableau avec des données dynamiques comprenant des noms d'en-tête. J'ai essayé plusieurs façons de reconstruire le tableau à partir de la réponse de l'API, mais je n'arrive toujours pas à le développer.

Recevez le tableau de la réponse comme suit

[
   {
      "category": "Emergency services",
      "code": "RMY 90",
      "limit": "9032",
      "OT": "4124"
   },
   {
      "category": "Pediatrician",
      "code": "RMY 80",
      "limit": "1232",
      "OT": "9412"
   },
   {
      "category": "Neurology",
      "code": "RMY 70",
      "limit": "6423",
      "OT": "7312"
   }
]

Grille attendue

[
   {
      "item": "Block Code",
      "Emergency services": "RMY 90",
      "Pediatrician": "RMY 80",
      "Neurology": "RMY 70"
   },
   {
      "item": "Total Capacity",
      "Emergency services": "9032",
      "Pediatrician": "1232",
      "Neurology": "6423"
   },
   {
      "item": "OT Capacity",
      "Emergency services": "4124",
      "Pediatrician": "9412",
      "Neurology": "7312"
   }
]

Exemple de tableau

J'ai essayé d'utiliser Object.keys() et map mais je n'arrive pas à construire le tableau correctement. Le code se trouvant sur le système client, je ne peux pas le partager. S'il vous plaît, aidez-moi à reconstruire le tableau.

Mon code est

const rowList = ["Block Code", "Total Capacity", "OT Capacity"];
  let arr = [];
  const dumming = rowList?.forEach(item => {

    for (const [key, object] of Object.entries(responseData)) {
      let x = [];
      Object.keys(object)?.forEach(item => {
        x.push(object[item]);
      });
      // console.log('rrrr', x);
    }

    let val = responseData.map((ned, index) => {
      let x = {};
      Object.keys(object)?.forEach(item => {
        x = ned[item]
      });
      // let cor = Object.entries(ned).map(([key, leaf]) => key+leaf);
      return {
        id: `${ index }-${ item }`,
        name: item, ...x
      };
    });
    arr.push(val);
  });

  console.log(arr);

Je ne sais pas si c'est correct. Pris au piège

P粉724737511P粉724737511443 Il y a quelques jours555

répondre à tous(1)je répondrai

  • P粉415632319

    P粉4156323192023-09-16 00:38:40

    L'idée d'utiliser rowList est bonne, mais elle suppose un certain ordre critique dans l'objet d'entrée (lorsque vous devrez ensuite associer des données à chaque étiquette), ce qui est généralement une mauvaise idée de s'appuyer sur un certain ordre dans un objet normal .

    Cependant, votre rowList 没有任何作用:尽管您迭代它,但您的代码从不使用 item (它定义了其他 item variable).

    Deuxièmement, .map 回调中有一个未知变量 object.

    Je ne comprends pas pourquoi vous avez généré une requête avec idname 键的对象,并生成格式为 ${ index }-${ item } 的字符串 car cela ne correspond à rien à votre question.

    Voici ce que je recommande :

    const responseData = [{"category": "Emergency services","code": "RMY 90","limit": "9032","OT": "4124"},{"category": "Pediatrician","code": "RMY 80","limit": "1232","OT": "9412"},{"category": "Neurology","code": "RMY 70","limit": "6423","OT": "7312"}];
    
    const rowList = [["code", "Block Code"], ["limit", "Total Capacity"], ["OT", "OT Capacity"]];
    const result = rowList.map(([key, item]) => ({
        item,
        ...Object.fromEntries(responseData.map((obj) => [obj.category, obj[key]]))
    }));
    
    console.log(result);

    répondre
    0
  • Annulerrépondre