今天我們建立如下的資料結構 , 以台北市選舉來講 , 可能會有兩派的支持者或者游離派門 , 如下圖 :
之所以建立這樣的結構 , 是因為我們也許想知道柯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 修正
文章同步發布於 保政島 使用 Underscore join 或 flatten 情境