资讯专栏INFORMATION COLUMN

在JS中封装List、Map、Set等集合

刘厚水 / 1644人阅读

摘要:结构本身可以看作一个线性数组,因此可以利用数组来封装,首先,定义中的数组和各类方法。用来存储,与中的对象很相似,因此,可以通过封装对象,定义一系列方法来构造。

在前端,我们通常需要用JS处理一些从服务器返回的数据,例如简单的数据清洗、对数据格式做细微的调整等等,这些需求在java中借助集合通常很容易完成,但JS原生不提供类似java中的集合,这时,我们可以利用JS中的原生数组和Object对象来封装List、Map、Set这些集合,下面依次说明如何封装这些集合。

List

List结构本身可以看作一个线性数组,因此可以利用数组来封装,首先,定义List中的数组和各类方法。

function List(){
    this.values = new Array();
    this.add = function(a){
        this.values.push(a);
    }
    this.get = function(index){
        if(index >= this.values.length){
            console.error("index is out range of the max index");
        }else{
            return values[index];
        }
    }
    ......
}
Map

Map用来存储key-Value,与JS中的Object对象很相似,因此,可以通过封装Object对象,定义一系列方法来构造Map。

function Map(){
    this.objs = {};
    this.put = function(key ,value){
        this.objs[key] = value;
    }
    this.get = function(key){
        if(key in this.objs){
            return this.objs[key];
        }else{
            console.debug("this key is not in the Map");
        }
    }
    this.keys = function(){
        var a = new Array();
        for(var b in this.objs){
            a.push(b);
        }
        return a;
    }
    this.delete = function(key){
        delete this.objs[key];
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104125.html

相关文章

  • Immutable.js 初识

    摘要:文章博客地址所创建的数据有一个迷人的特性数据创建后不会被改变。是的基类,使用该类时需要至少继承其子类中的一个。总结所提供的和固有的各有优势,未来有可能制定一套原生的规范,在这之前,是一个不错的选择。参考资料官方文档 文章博客地址:http://pinggod.com/2016/Immutable/ Immutable.js 所创建的数据有一个迷人的特性:数据创建后不会被改变。我们使用 ...

    Olivia 评论0 收藏0
  • Java013-集合

    摘要:集合框架重点理解用于存储数据的容器。集合容器在不断向上抽取过程中。出现了集合体系。,删除将集合中的元素全删除,清空集合。删除集合中指定的对象。注意删除成功,集合的长度会改变。作用用于取集合中的元素。是集合特有的迭代器。是单列集合是双列集合 集合框架(重点理解):用于存储数据的容器。特点:1:对象封装数据,对象多了也需要存储。集合用于存储对象。2:对象的个数确定可以使用数组,但是不确定怎...

    qpal 评论0 收藏0
  • java学习(七) —— API集合

    摘要:集合类主要负责保存盛装其他数据,因此集合类也被称为容器类。所有的集合类都位于包下。表示一组对象,这些对象也称为的元素。成员方法把集合转成数组迭代器,集合的专用遍历方式之接口概述有序的,也称为序列。 前言 在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们实现已经明确知道我们将要保存的对象的数量。 一旦在数组初始化时指定了数组长度,这个数组长度就...

    senntyou 评论0 收藏0
  • Java 线程相关类

    摘要:提供了线程安全的共享对象,在编写多线程代码时,可把不安全的整个变量封装进,或者把该对象与线程相关的状态使用保存并不能替代同步机制,两者面向的问题领域不同。 ThreadLocal类 使用ThreadLocal类可以简化多线程编程时的并发访问,使用这个工具类可以很简捷地隔离多线程程序的竞争资源。Java5之后,为ThreadLocal类增加了泛型支持,即ThreadLocal Threa...

    Sanchi 评论0 收藏0

发表评论

0条评论

刘厚水

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<