Immutable Hash and Array implementation in JavaScript?

前端 未结 4 915
南方客
南方客 2021-01-05 07:55

Is there simple immutable hash and array implementation in javascript? I don\'t need best speed, a reasonable speed better than a clone would be good.

4条回答
  •  孤城傲影
    2021-01-05 08:35

    I had the same requirements for persistent data structures for JS, so a while ago I made an implementation of a persistent map.. https://github.com/josef-jelinek/cofy/blob/master/lang/feat.js

    It contains implementation of a balanced tree based (sorted) map, and a naive copy-on-write map (and unfinished persistent vector/array).

    var map = FEAT.map();
    var map1 = map.assoc('key', 'value');
    var value = map1.get('key');
    var map2 = map1.dissoc('key');
    ...
    

    it supports other methods like count(), contains(key), keys(into = []), values(into = []), toObject(into = {}), toString()

    The implementation is not too complicated and it is in public domain. I accept suggestions and contributors too :).

    Update: you can find unit tests (examples of usage) at https://github.com/josef-jelinek/cofy/blob/master/tests/test-feat.html

    Update 2: Persistent vector implementation is now there as well with the following operations: count(), get(i), set(i, value), push(value), pop(), toArray(into = []), toString()

提交回复
热议问题