Advertisement
bebo231312312321

Untitled

Mar 18th, 2023
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function bookShelf(input) {
  2.  
  3.     //let workInputArr = [...input];
  4.     let bookShelf = {};
  5.     // let iD;
  6.     // let genre;
  7.     // let author;
  8.     // let bookName;
  9.  
  10.     input.forEach(line => {
  11.         if (line.includes(' -> ')) {
  12.             let [iD, genre] = line.split(' -> ');
  13.             if (!bookShelf.hasOwnProperty(iD)) {
  14.                 bookShelf[iD] = { [genre]: [] };
  15.             }
  16.         } else {
  17.             let [bookName, genre] = line.split(", ")
  18.             for (let key in bookShelf) {
  19.                 if (bookShelf[key].hasOwnProperty(genre)) {
  20.                     bookShelf[key][genre].push(bookName)
  21.                     break;
  22.                 }
  23.             }
  24.  
  25.         }
  26.  
  27.     })
  28.     Object.keys(bookShelf).sort((a, b) => Object.entries(bookShelf[b])[0][1].length - Object.entries(bookShelf[a])[0][1].length)
  29.         .forEach(id => {
  30.             console.log(`${id} ${Object.keys(bookShelf[id])}: ${Object.values(bookShelf[id])[0].length}`);
  31.             Object.values(bookShelf[id]).forEach(values => {
  32.                 values.sort((a, b) => a.localeCompare(b)).forEach(v => {
  33.                     console.log(`--> ${v}`);
  34.                 });
  35.             });
  36.         });
  37.  
  38. //         if (line.includes(': ')) {
  39. //             bookName = line.split(': ')[0];
  40. //             let tokens = line.split(': ')[1];
  41. //             [author, genre] = tokens.split(', ');
  42. //             let isGenre = false;
  43. //             Object.keys(bookShelf).forEach(shelf => {
  44. //                 if (genre in bookShelf[shelf]) {
  45. //                     isGenre = true;
  46. //                     iD = shelf;
  47. //                 }
  48. //             });
  49. //             if (isGenre) {
  50. //                 bookShelf[iD][genre][bookName] = author;
  51. //             }
  52. //         }
  53. //     });
  54. // }
  55.  
  56.  
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement