EasyJavaScriptTypeScript
useToggle Hook
ReactHooksBoolean
Implement useToggle(initial) that returns [getValue, toggle, setValue]:
getValue()— returns the current boolean.toggle()— flips the boolean.setValue(v)— sets to an explicit boolean.
solve(initial, ops) drives the hook and returns the state after each op.
Ops: { type: 'toggle' } or { type: 'set', value: boolean }.
Sample tests
Test #1Two toggles return to start
Input: [false,[{"type":"toggle"},{"type":"toggle"}]]
Output: [true,false]
Test #2Set then toggle
Input: [true,[{"type":"set","value":false},{"type":"toggle"}]]
Output: [false,true]
Test #3Set to same value twice
Input: [false,[{"type":"set","value":true},{"type":"set","value":true}]]
Output: [true,true]
Test #4Three toggles
Input: [false,[{"type":"toggle"},{"type":"toggle"},{"type":"toggle"}]]
Output: [true,false,true]
Test #5Set twice then toggle
Input: [true,[{"type":"set","value":false},{"type":"set","value":false},{"type":"toggle"}]]
Output: [false,false,true]