关于 JavaScript 与数据结构
发布于 7 年前 作者 ouyangxuanyun 3561 次浏览 来自 问答

今天突然想到js好像没有什么复杂的数据结构经常使用啊,像java 很多结构比如arraylist , queue, priorityqueue等等,但是js好像都没接触过,请问有什么js数据结构相关的库吗? 曾经看过underscore源码里面也并没有用到复杂的数据结构啊,谢谢大家讨论解答!

10 回复

Immutable.js 是用js实现的一些不可变的数据结构,这个应该够典型了。

我看到过网上有人用js实现的红黑树,

来自酷炫的 CNodeMD

@zswnew 基础的数据结构都有用js实现的,但是总感觉不怎么用得到

啊哈?js的Array对象已经帮你封装了那个多操作没看出来吗,Array真的非常好用,既能当队列,又能栈.

栈的操作方法: Array.prototype.push Array.prototype.pop

队列的操作方法: Array.prototype.shift Array.prototype.push

没有链表是因为没有指针,而且也不需要链表.

树直接用Object就可以是实现,也不用自己从TreeNode节点开始往上写.

当然,更复杂的数据结构还得自己来实现.我就经常用js写机器学习的算法作业.非常好使.

@cctv1005s 哈哈确实js的array已经很灵活了,其实基本的数据结构都有js版本的实现方式,只是感觉平时用的不多没有像java那样都封装好了随时可用的感觉

这些结构要么用现成的库要么自己造轮子,java的这些东西也不是原生支持的

@cctv1005s 队列的操作方法: Array.prototype.shift Array.prototype.push 应该是这样吧

@lbchuan 恩,先进先出,当时没注意.感谢纠正.

JavaScript的Object底层实现就是hash表,用起来不要太爽

回到顶部