Advertisement
didkoslawow

Untitled

May 20th, 2023
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function fromJSONToHTMLTable(json) {
  2.      const students = JSON.parse(json);
  3.  
  4.      const result = ['<table>'];
  5.      result.push(addKey(students));
  6.      students.forEach((student) => {
  7.          result.push(addValue(student));
  8.      });
  9.      result.push('</table>');
  10.  
  11.      console.log(result.join('\n'));
  12.  
  13.      function addKey(arr) {
  14.          let result = '  <tr>';
  15.  
  16.          Object.keys(arr[0]).forEach((key) => {
  17.              result += `<th>${escapeString(key)}</th>`;
  18.          });
  19.          result += '</tr>';
  20.  
  21.          return result;
  22.      }
  23.  
  24.      function addValue(obj) {
  25.          let result = '  <tr>';
  26.          Object.values(obj).forEach((value) => {
  27.              result += `<td>${escapeString(value)}</td>`;
  28.          });
  29.          result += '</tr>';
  30.  
  31.          return result;
  32.      }
  33.  
  34.      function escapeString(key) {
  35.          let entityMap = {
  36.              '&': '&amp;',
  37.              '<': '&lt;',
  38.              '>': '&gt;',
  39.              '"': '&quot;',
  40.              ' ': '&nbsp;',
  41.          };
  42.          return key.toString().replace(/[&<> "]/g, (key) => entityMap[key]);
  43.      }
  44.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement