@@ -158,28 +158,9 @@ function addCompanyProblems(sortMethod: string) {
158
158
159
159
console . log ( solutions ) ;
160
160
161
- const table = document . getElementById ( 'solutionTable' ) as HTMLTableElement ;
162
-
163
- // Modify table rendering to include difficulty and acceptance
164
- solutions . forEach ( solution => {
165
- const row = table . insertRow ( - 1 ) ;
166
- row . insertCell ( 0 ) . innerText = solution . id . toString ( ) ;
167
- const difficultyText = solution . difficulty === 1 ? 'Easy' : solution . difficulty === 2 ? 'Medium' : 'Hard' ;
168
- row . insertCell ( 1 ) . innerText = difficultyText || 'N/A' ;
169
- row . insertCell ( 2 ) . innerHTML = `<a href="${ solution . url } " target="_blank">${ solution . title } </a>` ;
170
- row . insertCell ( 3 ) . innerText = ( solution . acceptance ? ( solution . acceptance * 100 ) . toFixed ( 2 ) + '%' : 'N/A' ) ; // New column for acceptance
171
- // add frequency as a bar
172
- if ( solution . frequency ) {
173
- const frequencyCell = row . insertCell ( 4 ) ;
174
- const bar = document . createElement ( 'div' ) ;
175
- const width = ( ( solution . frequency - minFrequency ) / ( maxFrequency - minFrequency ) ) * 100 ;
176
- bar . style . width = width + '%' ;
177
- bar . style . height = '10px' ;
178
- bar . style . backgroundColor = 'lightgreen' ;
179
- bar . style . borderRadius = '10px' ;
180
- frequencyCell . appendChild ( bar ) ;
181
- }
182
- } ) ;
161
+ // Rebuild the table with sorted solutions
162
+ rebuildTable ( ) ;
163
+
183
164
} ) ;
184
165
}
185
166
@@ -234,6 +215,35 @@ async function addCompaniesToSelect() {
234
215
} ) ;
235
216
}
236
217
218
+ // Function to rebuild the table with sorted solutions
219
+ function rebuildTable ( ) {
220
+ const table = document . getElementById ( 'solutionTable' ) as HTMLTableElement ;
221
+ while ( table . rows . length > 1 ) {
222
+ table . deleteRow ( 1 ) ;
223
+ }
224
+
225
+ solutions . forEach ( ( solution ) => {
226
+ const row = table . insertRow ( - 1 ) ;
227
+ row . insertCell ( 0 ) . innerText = solution . id . toString ( ) ;
228
+ const difficultyText = solution . difficulty === 1 ? 'Easy' : solution . difficulty === 2 ? 'Medium' : 'Hard' ;
229
+ row . insertCell ( 1 ) . innerText = difficultyText || 'N/A' ;
230
+ row . insertCell ( 2 ) . innerHTML = `<a href="${ solution . url } " target="_blank">${ solution . title } </a>` ;
231
+ row . insertCell ( 3 ) . innerText = ( solution . acceptance ? ( solution . acceptance * 100 ) . toFixed ( 2 ) + '%' : 'N/A' ) ; // New column for acceptance
232
+
233
+ // Add frequency as a bar
234
+ const frequencyCell = row . insertCell ( 4 ) ;
235
+ const bar = document . createElement ( 'div' ) ;
236
+ const width = ( ( solution . frequency - minFrequency ) / ( maxFrequency - minFrequency ) ) * 100 ;
237
+ bar . style . width = width + '%' ;
238
+ bar . style . height = '10px' ;
239
+ bar . style . backgroundColor = 'lightgreen' ;
240
+ bar . style . borderRadius = '10px' ;
241
+ bar . style . border = '1px solid lightgreen' ;
242
+ frequencyCell . appendChild ( bar ) ;
243
+ } ) ;
244
+ }
245
+
246
+
237
247
238
248
// Keep track of the sorting order for each column
239
249
const sortOrders = {
@@ -267,22 +277,8 @@ function sortBy(column: string) {
267
277
}
268
278
269
279
// Rebuild the table with sorted solutions
270
- solutions . forEach ( ( solution ) => {
271
- const row = table . insertRow ( - 1 ) ;
272
- row . insertCell ( 0 ) . innerText = solution . id . toString ( ) ;
273
- row . insertCell ( 1 ) . innerHTML = `<a href="${ solution . url } " target="_blank">${ solution . title } </a>` ;
280
+ rebuildTable ( ) ;
274
281
275
- // Add frequency as a bar
276
- const frequencyCell = row . insertCell ( 2 ) ;
277
- const bar = document . createElement ( 'div' ) ;
278
- const width = ( ( solution . frequency - minFrequency ) / ( maxFrequency - minFrequency ) ) * 100 ;
279
- bar . style . width = width + '%' ;
280
- bar . style . height = '10px' ;
281
- bar . style . backgroundColor = 'lightgreen' ;
282
- bar . style . borderRadius = '10px' ;
283
- bar . style . border = '1px solid lightgreen' ;
284
- frequencyCell . appendChild ( bar ) ;
285
- } ) ;
286
282
}
287
283
288
284
/* Run the script */
0 commit comments