Angular2 Observable updating private variable
<p>Not sure if I'm asking the question correctly, but I have a service that is used to share an array object between different components.  However, when I submit the new object to the service, something is updating all other objects in my service array.</p>

<p>ie 
first push
    answers = [{questionId: 1, value: 1}]
second push with {questionId: 1, value: 3}
    answers = [{questionId: 1, value: 3}, {questionId: 1, value: 3}]</p>

<p>Notice how the value is changed to match the value of the newly pushed answer object. </p>

<p>This is my service</p>

<pre><code>export interface Answer {
  questionId: number;
  value: number;
}

  private answers: Answer[] = [];
  private _answers: BehaviorSubject&lt;Answer[]&gt; = new BehaviorSubject([]);
  public answers$ = this._answers.asObservable();


  addAnswer(answer: Answer) {
    this.answers.push(answer);
    this._answers.next(this.answers);
  }
</code></pre>

<p>This is my component</p>

<pre><code>export class LevelComponent {
  subscription: Subscription;
  answer: Answer = {questionId: 0, value: 0}; 
  a: Answer[];
  constructor(public route: ActivatedRoute, public answerService: AnswerService) {

  }

  ngOnInit() {

    this.subscription = this.answerService.answers$.subscribe(item =&gt; this.a = item);


  }
  ngOnDestroy() {
    // prevent memory leak when component is destroyed
    this.subscription.unsubscribe();
  }


  submitAnswer(e){
    console.log(e.target.id);
    this.answer.questionId = 1;
    this.answer.value = e.target.id;

    this.answerService.addAnswer(this.answer);
  }
</code></pre>

<p>Basically I'm looking to 'share' an array of answers across multiple components, but limited understanding of BehaviorSubject and subscriptions has be perplexed as to why, after adding a new item to the array in service, would it update all other objects.  On a side note, if I change the answer var to just be a number, the values in the array don't change when I submit the answer.</p>

<p>Here is a <a href="https://plnkr.co/edit/kuhGT9hXE7KHKsiTCVWb?p=preview" rel="nofollow noreferrer">Plunker</a> that illustrates what I'm seeing.</p>