Advertisement
didkoslawow

Untitled

Jun 1st, 2023
135
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