mori.js 中文API(親測)
這裡不講函式式的概念,因為既然你搜到這篇文章,你已經讀了不少晦澀難懂的文字了。所以這裡只會介紹mori.js 這個庫的API
mori的資料結構
-
向量 Vector
帶有索引(index)的一組資料和js的array非常像,不過它是不可變和永續性的機構。
建立的方法是:mori.vector(1,2,3,4) // =>[1,2,3,4]
獲取向量的元素
let vec = mori.vector(1,2,3,4) mori.get(vec,0)
新增向量的元素
mori.conj(vec,5) // =>[1,2,3,4,5] vec //=>[1,2,3,4]
刪除向量的尾部元素
mori.pop(vec) // =>[1,2,3] vec //=>[1,2,3,4]
獲取向量的首個和剩餘元素
mori.first(vec) //=> 1 mori.rest(vec) //=> ( 2 3 4 ) 注意這裡是( )
獲取子向量(subvec)
mori.subvec(vec,1) //=> [2 3 4 ] mori.subvec(vec,1,2) //=> [2] vec // =>[1,2,3,4]
FYI:向量的所有操作都是不可變的
-
Map
這個是JS的語法:let map = new Map(); map.set(0,'零'); // => Map {0=>'零'} map.set(1,'一'); // => Map {0=>'零',1=>'一'}
我們可以使用mori.hashMap建立一個hashMap的例項,同樣所有操作都不會改變原來的不可變物件
let m = mori.hashMap('零',0,'一',1); // =>{'零' 0, '一' 1} mori.get(m,'零') // =>0 let m1 = mori.assoc(m,mori.vector(1,2),2); //更新操作 // m1 =>{'零' 0, '一' 1,[1 2] 2} // m =>{'零' 0, '一' 1} mori.get(m1, mori.vector(1, 2)) // =>2 mori.assoc(mori.vector(1, 2, 3), 1, 8); // => [1,8,3] mori.conj(m,mori.vector("foo","bar")); // => {'零' 0, '一' 1 , "foo" "bar"}
函式組合子
- filter
Array也有filter方法mori.filter(mori.isEven,[1,2,3,4,5])
[1,2,3,4,5].filter(x => x%2 == 0) - reduce
第一個函式是規定引數,第二個是初始值,第三個集合mori.reduce( (a,b) => a+b,0, [ 1, 2, 3, 4,5]) // => 15
mori.equals(x, y)
判斷兩個引數的值是否相等。適用所有Mori的模型,進行深度對比。
var l1 = mori.list(1,2,3);
var l2 = mori.list(1,2,3);
mori.equals(l1, l2); // => true
var v = mori.vector(1,2,3);
mori.equals(v, l1); // => true
var m0 = mori.toClj({foo: 1});
var m1 = mori.toClj({foo: 1});
mori.equals(m0, m1); // => true
mori.hash(x)
把mori的物件Hash值化。說白了就是把mori的物件轉為唯一Id
var l = mori.list(1, 2, 3);
var v = mori.vector(1, 2, 3);
mori.hash(l) == mori.hash(v); // => true
mori.isList(coll)
判斷是否是mori的List物件
var l = mori.list(1, 2, 3);
console.log(mori.isList(l))//true
mori.isSeq(coll)
翻譯來說是判斷是否序列號。不過寫Test.實在看不出有什麼規律
mori. isVector(coll)
判斷是否是mori的Vector物件
var v = mori.vector(1, 2, 3);
console.log('isVector'+mori.isVector(v))
mori.isMap(coll)
判斷是否是mori的 Map物件
var v = mori.hashMap(1, 2, 3);
console.log('isVector'+mori.isMap(v))
mori.isSet(coll)
判斷是否是mori的Set物件
var s = mori.set(["bird", "cat", "dog"]);
console.log('set'+mori.isSet(s))
mori.isCollection(coll)
判斷是否是mori的物件,Set,Lists,Maps,Vectors都是Collection的物件
var s = mori.set(["bird", "cat", "dog"]);
console.log('set'+mori. isCollection(s))
mori. isSequential(coll)
判斷是否是mori的物件,Set,Lists,Maps,Vectors都是Collection的物件
var s = mori.set(["bird", "cat", "dog"]);
console.log('set'+mori. isCollection(s))
相關文章
- MestReNova 破解版中文+MestReNova 破解工具「親測可用」
- 親測好用的筆記軟體:Notability for Mac中文版筆記Mac
- 親測好用的虛擬定位軟體:AnyGo mac中文版GoMac
- 親測好用的系統維護工具:System Toolkit for Mac中文版Mac
- 親測好用的解壓縮神器:RAR Extractor Max mac中文版Mac
- 親測好用的廣告攔截軟體:AdGuard Mac中文版Mac
- 推薦!!親測好用的磁碟清理軟體:DaisyDisk mac中文版AIMac
- 親測好用的滑鼠右鍵增強助手:MouseBoost for Mac中文版Mac
- 親測好用的應用程式啟動工具:Alfred for Mac中文版AlfredMac
- XMemcached 中文apiAPI
- 親測好用的下載管理器:Progressive Downloader mac中文版Mac
- 親測好用的資料恢復軟體:Disk Drill Mac中文版資料恢復Mac
- 【親測有效】LUT調色神器3D Lut Creator Pro中文漢化版3D
- 【親測好用】影像編輯軟體:Capture One Pro 22 mac中文版APTMac
- js呼叫ts,親測。JS
- 親測好用的任務日曆管理工具:BusyCal mac中文版Mac
- 親測好用的sPlayer輕播影片播放器:zFuse Pro mac中文版播放器Mac
- 親測:超搞笑的人類一敗塗地Human Fall Flat Mac中文版Mac
- ext 線上中文apiAPI
- JFreeChart中文APIAPI
- JAVA EE 中文APIJavaAPI
- PopupWindow使用詳解(一)中文API文件贈送ListPopupWindow中文APIAPI
- 親測好用的raw影像處理軟體:Capture One Pro 22 mac中文版APTMac
- 親測好用的Mac影片播放器推薦:Movist Pro for Mac中文版Mac播放器
- JAVA AES 加密 親測可用Java加密
- API 測試 | 瞭解 API 介面測試 | API 介面測試指南API
- 親測好用的虛擬機器軟體:vm虛擬機器 mac中文版虛擬機Mac
- 親測好用的資料恢復軟體:Disk Drill Enterprise mac中文版資料恢復Mac
- 親測好用的影片修復增強工具:HitPaw Video Enhancer mac中文版IDEMac
- 13系統親測:清理解除安裝工具App Cleaner & Uninstaller Mac中文版APPMac
- 親愛的Oracle: Java API不是藝術品OracleJavaAPI
- API測試:瞭解API介面測試與API介面測試指南API
- Maven整合SSM和Redis,親測MavenSSMRedis
- Android親測原始碼分享Android原始碼
- httpsqs搭建,親測成功版HTTP
- 親測有用的解決方案
- bigbluebutton中文社群 / 開放API / bbb APIAPI
- Windows 多開微信親測有效版Windows