Imperative Pattern vs Declarative Pattern

在讀JavaScript的時候,這兩個Pattern常常被提到,做了一下筆記。
假設我們要做一個包含很多人物的物件。

const characters= [
  {name:'Curapica', age:15}, 
  {name:'Killua', age:13},
  {name:'Gon', age:12},
  {name:'Leorio', age:17},
];

這時候這二種pattern的寫法就會是這樣:

/* Imperative Pattern */
for (let i = 0; i < characters.length; i += 1) {
  characters[i].lastSeen =  new Date();
}

/* Declarative Pattern */
characters.map((book)=> {
  characters.lastSeenBy = 'me';
  return characters;
});

Declarative Pattern:要做什麼
Imperative Pattern:如何做

想像是兩個個性不同的妹子,就是這樣: