@@ -14,8 +14,8 @@ An implementation of the round robin as a data structure. Two strategies are imp
1414 * [ add(item)] ( #additem )
1515 * [ count()] ( #count )
1616 * [ next()] ( #next )
17- * [ completedRounds( )] ( #completedrounds )
18- * [ delete(key )] ( #deletekey )
17+ * [ deleteByKey(key )] ( #deletebykeykey )
18+ * [ deleteByValue(cb )] ( #deletebyvaluecb )
1919 * [ reset()] ( #reset )
2020 * [ clear()] ( #clear )
2121 * [ Build] ( #build )
@@ -181,61 +181,73 @@ console.log(randomTable.next()); // { key: 3, value: 25 }
181181console .log (randomTable .next ()); // { key: 1, value: 10 }
182182```
183183
184- ### completedRounds( )
185- returns the number of completed rounds .
184+ ### deleteByKey(key )
185+ deletes an item by its key from the table .
186186
187187<table >
188188 <tr >
189189 <th align="center">return</th>
190190 </tr >
191191 <tr >
192- <td align="center">number </td>
192+ <td align="center">boolean </td>
193193 </tr >
194194</table >
195195
196196``` js
197- console .log (sequentialTable .completedRounds ()); // 1
197+ sequentialTable .deleteByKey (0 );
198+ sequentialTable .deleteByKey (2 );
199+ console .log (sequentialTable .next ()); // { key: 1, value: 'T2' }
200+ console .log (sequentialTable .next ()); // { key: 3, value: 'T4' }
201+ console .log (sequentialTable .next ()); // { key: 1, value: 'T2' }
198202
199- console .log (randomTable .completedRounds ()); // 1
203+ randomTable .deleteByKey (0 );
204+ randomTable .deleteByKey (2 );
205+ console .log (randomTable .next ()); // { key: 3, value: 25 }
206+ console .log (randomTable .next ()); // { key: 1, value: 10 }
207+ console .log (randomTable .next ()); // { key: 3, value: 25 }
200208```
201209
202- ### delete(key )
203- deletes an item from the table by its key .
210+ ### deleteByValue(cb )
211+ deletes items with values that match a criteria from the table and returns the number of deleted items .
204212
205213<table >
206214 <tr >
215+ <th align="center">params</th>
207216 <th align="center">return</th>
208217 </tr >
209218 <tr >
210- <td align="center">boolean</td>
219+ <td align="center">cb: (value: T) => boolean</td>
220+ <td align="center">number</td>
211221 </tr >
212222</table >
213223
214224``` js
215- sequentialTable .delete (0 );
216- sequentialTable .delete (2 );
217- console .log (sequentialTable .next ()); // { key: 1, value: 'T2' }
218- console .log (sequentialTable .next ()); // { key: 3, value: 'T4' }
219- console .log (sequentialTable .next ()); // { key: 1, value: 'T2' }
220-
221- randomTable .delete (0 );
222- randomTable .delete (2 );
223- console .log (randomTable .next ()); // { key: 3, value: 25 }
224- console .log (randomTable .next ()); // { key: 1, value: 10 }
225- console .log (randomTable .next ()); // { key: 3, value: 25 }
225+ const seqTable = new SequentialRoundRobin < number> ([2 , 3 , 5 , 6 , 7 , 10 ]);
226+ const ranTable = new RandomRoundRobin < { id: string }> ([
227+ { id: ' 123' },
228+ { id: ' id456' },
229+ { id: ' 456' },
230+ { id: ' id780' }
231+ ]);
232+
233+ const d1 = seqTable .deleteByValue ((n ) => n % 2 === 1 ); // 3
234+ console .log (seqTable .next (), seqTable .next (), seqTable .next ())
235+ // { key: 0, value: 2 } { key: 3, value: 6 } { key: 5, value: 10 }
236+
237+ const d2 = ranTable .deleteByValue ((obj ) => obj .id .indexOf (' id' ) === 0 ); // 2
238+ console .log (ranTable .next (), ranTable .next ())
239+ // { key: 2, value: { id: '456' } } { key: 0, value: { id: '123' } }
226240```
227241
228242### reset()
229- resets the table with the intial items and clears completed rounds .
243+ resets the table with the intial values .
230244
231245``` js
232246sequentialTable .reset ();
233247console .log (sequentialTable .count ()); // 3
234- console .log (sequentialTable .completedRounds ()); // 0
235248
236249randomTable .reset ();
237250console .log (randomTable .count ()); // 3
238- console .log (randomTable .completedRounds ()); // 0
239251```
240252
241253### clear()
@@ -244,11 +256,9 @@ clears all values in the table.
244256``` js
245257sequentialTable .clear ();
246258console .log (sequentialTable .count ()); // 0
247- console .log (sequentialTable .completedRounds ()); // 0
248259
249260randomTable .clear ();
250261console .log (randomTable .count ()); // 0
251- console .log (randomTable .completedRounds ()); // 0
252262```
253263
254264## Build
0 commit comments