Underscore [5] : 使用 union 或 flatten 情境

摘要:使用 Underscore union 或 flatten 情境

今天我們建立如下的資料結構 , 以台北市選舉來講 , 可能會有兩派的支持者或者游離派門  , 如下圖 : 

 

之所以建立這樣的結構 , 是因為我們也許想知道柯P或其他人 的支持人數以及是誰支持 , 

 

可是今天我想在台北市選舉中尋找某一特定人的話 , 我必須迴圈這三組陣列直到找到我要的人 , 

 

可是若我不想使用迴圈來表達的我想要的語意呢 ? 

 

我們可以使用在前一篇所介紹的 flatten 語法 , 如下圖 : 

 

全部陣列裡的元素全被映射到新陣列了 , 接下來我要做搜尋的動作就簡易多了 , 如下 :

supporter.indexOf("target") > -1

 

而不需要像下面的 Code 一樣 , 

 

for (var i = 0; i < supporter.length; i++) {        
       if (supporter[i].NAME === "target") {
           // do what
       }
}

 

在這裡可以順便介紹 Underscore 的  union 語法 , 另外 Jquery 本身的 merge 也可以做到 , 

 

不過 union 回傳的數組的元素是唯一的 , merge 是允許重複元素的 , 不過若今天陣列不只三組呢 ....

 

程式碼範例 : 

JS Bin

 

2014 / 10 / 31 修正