最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js数据结构类型扩展immutable-js的使用介绍(代码示例)

来源:动视网 责编:小采 时间:2020-11-27 19:30:32
文档

js数据结构类型扩展immutable-js的使用介绍(代码示例)

js数据结构类型扩展immutable-js的使用介绍(代码示例):本篇文章给大家带来的内容是关于js数据结构类型扩展immutable-js的使用介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。相对 java、.net 之类的强类型语言,js 有一点很大的区别就是,数据结构只有 array 与 ob
推荐度:
导读js数据结构类型扩展immutable-js的使用介绍(代码示例):本篇文章给大家带来的内容是关于js数据结构类型扩展immutable-js的使用介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。相对 java、.net 之类的强类型语言,js 有一点很大的区别就是,数据结构只有 array 与 ob


本篇文章给大家带来的内容是关于js数据结构类型扩展immutable-js的使用介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

相对 java、.net 之类的强类型语言,js 有一点很大的区别就是,数据结构只有 array 与 object,并且都是动态可变的,而 java 有 List, Set, Map 等数据结构。所以,为了能在 js 中也使用这些数据结构,immutable-js 就应运而生。

1. immutable-js

immutable-js 扩充了 JavaScript 中的不可变集合,即一旦创建就不能改变的数据类型。这样可简化应用开发、无防御复制、启用更先进的内存方案,以及使用更简单的逻辑检查更新。持久化数据提供可修改的 API,这些 API 不在原地更新数据,而是产生新的更新后的数据。

2. 提供的数据类型

1、List: 有序索引集合,类似 JavaScript 中的 Array

2、Map: 无序键值对((key, value) pairs)集合

3、OrderedMap: 有序的 Map

4、Set: 无重复值的集合

5、OrderedSet: 有序的 Set

6、Stack: 支持元素添加和移除的索引集合

7、Range(): 返回一个从 start 到 end,步长 step 填充的 Seq.Indexed 集合,start 默认值为 0,step 默认值为 1,end 默认为无穷大。如果 start = end,则返回空集合。

8、Repeat(): 返回一个用 value 重复 times 次的 Seq.Indexed 集合。如果 times 未定义,则返回无限 value 值的 Seq 集合。

9、Record: 类似于 JavaScript 的 Object,但是只接收特定字符串为 key,并有默认值

10、Seq: 允许不通过中间集合让高阶集合函数(如 map, filter)高效链式调用的惰性操作集合

11、Collection: 所有数据结构的基类

3. 提供的 API

3.1 fromJS: 将一个 js 数据转换为 immutable-js 类型的数据

const { fromJS, isKeyed } = require('immutable@4.0.0-rc.9');
fromJS({ a: {b: [10, 20, 30]}, c: 40}, function (key, value, path) {
 console.log(key, value, path)
 return isKeyed(value) ? value.toOrderedMap() : value.toList()
})

> "b", [ 10, 20, 30 ], [ "a", "b" ]
> "a", {b: [10, 20, 30]}, [ "a" ]
> "", {a: {b: [10, 20, 30]}, c: 40}, []

3.2 is: 对两个对象进行比较

const { Map, is } = require('immutable@4.0.0-rc.9')
const map1 = Map({ a: 1, b: 1, c: 1 })
const map2 = Map({ a: 1, b: 1, c: 1 })
assert.equal(map1 !== map2, true)
assert.equal(Object.is(map1, map2), false)
assert.equal(is(map1, map2), true)

文档

js数据结构类型扩展immutable-js的使用介绍(代码示例)

js数据结构类型扩展immutable-js的使用介绍(代码示例):本篇文章给大家带来的内容是关于js数据结构类型扩展immutable-js的使用介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。相对 java、.net 之类的强类型语言,js 有一点很大的区别就是,数据结构只有 array 与 ob
推荐度:
标签: 数据 js 的用法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top