js用递归遍历多维数组_Set Map你会用吗?

 程序中处理数据是必不可少的一部分,而一般来说数据的出现体量都会比较大切带有一些相同点;因此在程序中如何处理一堆数据,并且这堆数据都还有着一些相同时,就是非常重要的了。最佳的解决方式就是使用集合了

cf49dac7411ea93b8ff6e2dda4a3dcde.png

01

集合的定义

计算机科学中,集合是一组可变数量的数据项(也可能是 0 个)的组合,这些数据项可能共享某些特征,需要以某种操作方式一起进行操作。一般来讲,这些数据项的类型是相同的,或是满足相同的条件,或者遵循相同的规则。

810a14fe4aa2e940c9d4e9a32be9e2ba.png

集合的特点:长度可变。

正常来说,传统的数组(C,JAVA 中)是不属于集合的。在 JAVA 或者 C中,数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合大小不固定,是可以动态扩展容量的,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用集合,数组不适用。

但是在我们的 JavaScript 当中数组发生的巨大的变化,更灵活,更方便,与传统意义上的数组只是“形似“,包括在 V8 引擎反编译之后对应的不是 C 语言中的真实数组,在加上 JavaScript 是解释型语言,在加上反编译,执行效率自然就会偏低一些。现在有了一个集合的概念,很大很广泛。根据这样的集合大概念,在加上不同的共享特征,或者是统一的条件,就可以抽象出来称为一个新的集合。

先从 JS 的 Array 说起。

JS 数组是一个集合,这个集合的特点是,存储一些有序的内容(通过下标访问),长度可变,类型不限制。但是基于前车之鉴,在 JS 数组封装的同时添加多种的遍历方式(forEach, map,等等),支持栈操作(push,pop),队列操作(shift, unshift),包括更灵活的在数组中插值,删值等功能。

我们需要这种线性的结构用于存储数据,在 js 定制初期的时候,就把数组引入进来,后续的不断发展中得到我们现在的数组。

对于 JS 对象是一种满哈希表结构(散列表)。

在我们已有数组这种结构的基础之上,我们会有一个很常用的需求,数组去重

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值