-3

i want to map and disply data like below how to achieve this in react ,javascipt

   ................,

   "report": Object {
    "Title 1": Array [
      Object {

        "result": "121",
        "title": "QWERTY",
      },
      Object {
        "result": "21",
        "title": "YUIO",
      },
    ],
    "Title 2": Array [
      Object {
        "result": "12",
        "title": "ERTY",
      },
      Object {
        "result": "121",
        "title": "ABCD",
      },
    ],
    "Title 3": Array [
      Object {
        "result": "2121",
        "title": "XYZ",
      },
    ],
  },
  ".......",

How to map this data like this

Title 1
QWERTY 121
YUIO 21
Title 2
ERTY 12
ABCD 121
Title 3
ERTY 12
ABCD 121

..etc

{Object.keys(report.report.report)} gives only object titles

david
  • 1
  • 3

1 Answers1

1

You iterate through the keys and render dynamic tables.

Working solution here: prakash-table-dynamic

const data = {
    report: {
      "Title 1": [
        {
          result: "121",
          title: "QWERTY"
        },
        {
          result: "21",
          title: "YUIO"
        }
      ],
      "Title 2": [
        {
          result: "12",
          title: "ERTY"
        },
        {
          result: "121",
          title: "ABCD"
        }
      ],
      "Title 3": [
        {
          result: "2121",
          title: "XYZ"
        }
      ]
    }
  };

  const tableList = data.report;

  const getTable = (title, tableData) => {
    return (
      <table border="1" width="100%">
        <tr>
          <td width="50%">{title}</td>
          <td width="50%"></td>
        </tr>
        {tableData.map((item) => {
          return (
            <tr>
              <td>{item.title}</td>
              <td>{item.result}</td>
            </tr>
          );
        })}
      </table>
    );
  };

  const renderTables = () => {
    return Object.keys(tableList).map((key) => {
      return (
        <div
          style={{
            marginBottom: "20px"
          }}
        >
          {getTable(key, tableList[key])}
        </div>
      );
    });
  };
Prakash S
  • 1,695
  • 3
  • 11
  • 20