国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

用JavaScript對JSON進行模式匹配(Part 1-設計)

2019-11-21 00:21:19
字體:
來源:轉載
供稿:網友
至于篩選條件的描述,模式匹配是一種很常見也很好用的方式。在 JavaScript 里面,用 JSON 來描述模式又是相當方便的事情,所以我們來做一個 JSON 模式匹配工具吧。

用例設計
作為一個 dispatcher ,我們只需要兩個方法: notify 和 capture 。一個最簡單的用例是這樣的:
復制代碼 代碼如下:

Dispatcher.capture({
"status": 200,
"command": "message"
}, function(json) { /* display message */ });

Dispatcher.notify({
“status": 200,
"command": "message",
"content": {
"from": "user1",
"to": "user2",
"text": "hello"
}
});

當然,只有局部的全等匹配是不夠的,我們還需要一些其他運算符。
復制代碼 代碼如下:

Dispatcher.capture({
"value1$eq": "hello", /* equal */
"value2$ne": true, /* not equal */
"value3$lt": 0, /* less than */
"value4$lte: 1, /* less than or equal */
"value5$gt": 2, /* greater than */
"value6$gte": 3, /* greater than or equal */
"value7$in": [1, 3, 5, 7, 9], /* in */
"value8$nin": [2, 4, 6, 8, 10], /* not in */
"value9$all": [1, 2, 3, 4, 5], /* all */
"value10$ex": true, /* exists */
"value11$re": /^A.*/, /* regular expression */
"value12$ld": function(json) { return true; } /* lambda */
}, function(json) {});

Dispatcher.notify({
"value1": "hello",
"value2": false,
"value3": -1,
"value4": 1,
"value5": 3,
"value6": 3,
"value7": 5,
"value8": 5,
"value9": [1, 3, 5, 2, 4],
"value10": "hello",
"value11": "A13579",
"value12": "anything"
})

隨手寫下來一堆運算符,看起來實現會很復雜?其實不會有多復雜。在下一篇文章里面,我們會討論如何設計一個運算符接口,然后逐一實現這些運算符。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汽车| 裕民县| 葵青区| 五河县| 平罗县| 新蔡县| 枣庄市| 双鸭山市| 喀喇| 鄂托克前旗| 肇庆市| 筠连县| 剑川县| 行唐县| 巴彦淖尔市| 沾益县| 鹤山市| 郑州市| 女性| 边坝县| 青海省| 房山区| 明光市| 富川| 阳原县| 黔东| 宁化县| 荥经县| 韶山市| 钟山县| 囊谦县| 花垣县| 凭祥市| 肥乡县| 惠来县| 平泉县| 台湾省| 宁强县| 台前县| 尉氏县| 阿拉善左旗|