EasyPro challengeTypeScript

Observer

TypeScriptDesign PatternsBehavioralObserver

Let a subject notify a list of subscribed observers whenever its state changes, without the subject knowing anything concrete about who's listening.

Implement `Subject.subscribe(name)`/`notify(value)`: every subscribed observer's update(value) should log { observer: name, value } when notified.

solve(names, values) subscribes every name, then calls notify for every value, and returns the full log.

solve(['a', 'b'], [1])[{ observer: 'a', value: 1 }, { observer: 'b', value: 1 }]

Sample tests

Test #1One notification reaches both observers
Input: [["a","b"],[1]]
Output: [{"value":1,"observer":"a"},{"value":1,"observer":"b"}]
Test #2One observer, two notifications
Input: [["a"],[1,2]]
Output: [{"value":1,"observer":"a"},{"value":2,"observer":"a"}]
Test #3No observers subscribed
Input: [[],[1]]
Output: []