`
geningaixin
  • 浏览: 18747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js的两个小示例,js数组删除指定元素和js实现MAP结构

阅读更多
首页来个简单的,javascript提供了数据结构的对象,Array,只有添加方法,却不可以针对元素下表来进行元素的删除。上代码吧。
Array.prototype.del=function(n) { //n表示第几项,从0开始算起。
    //prototype为对象原型,注意这里为对象增加自定义方法的方法。
    if(n<0) //如果n<0,则不进行任何操作。
        return this;
    else
        return this.slice(0,n).concat(this.slice(n+1,this.length));
    /*
    concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
         这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
          组成的新数组,这中间,刚好少了第n项。
    slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
  */
}

// 我们来试一试这个自己增加的方法
var test=new Array(0,1,2,3,4,5);
test=test.del(3); // 从0算起,这里也就是删除第4项。
alert(test);


第二个是javascript里定义MAP结构。也不多说,直接上代码慢慢研究
function Map() {
    this.elements = new Array();
    //获取MAP元素个数
    this.size = function() {
        return this.elements.length;
    };
    //判断MAP是否为空
    this.isEmpty = function() {
        return (this.elements.length < 1);
    };
    //删除MAP所有元素
    this.clear = function() {
        this.elements = new Array();
    };
    //向MAP中增加元素(key, value) 
    this.put = function(_key, _value) {
        this.elements.push( {
            key : _key,
            value : _value
        });
    };
    //删除指定KEY的元素,成功返回True,失败返回False
    this.remove = function(_key) {
        var bln = false;
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key == _key) {
                    this.elements.splice(i, 1);
                    return true;
                }
            }
        } catch (e) {
            bln = false;
        }
        return bln;
    };
    //获取指定KEY的元素值VALUE,失败返回NULL
    this.get = function(_key) {
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key == _key) {
                    return this.elements[i].value;
                }
            }
        } catch (e) {
            return null;
        }
    };
    //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
    this.element = function(_index) {
        if (_index < 0 || _index >= this.elements.length) {
            return null;
        }
        return this.elements[_index];
    };
    //判断MAP中是否含有指定KEY的元素
    this.containsKey = function(_key) {
        var bln = false;
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key == _key) {
                    bln = true;
                }
            }
        } catch (e) {
            bln = false;
        }
        return bln;
    };
    //判断MAP中是否含有指定VALUE的元素
    this.containsValue = function(_value) {
        var bln = false;
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].value == _value) {
                    bln = true;
                }
            }
        } catch (e) {
            bln = false;
        }
        return bln;
    };
    //获取MAP中所有VALUE的数组(ARRAY)
    this.values = function() {
        var arr = new Array();
        for (i = 0; i < this.elements.length; i++) {
            arr.push(this.elements[i].value);
        }
        return arr;
    };
    //获取MAP中所有KEY的数组(ARRAY)
    this.keys = function() {
        var arr = new Array();
        for (i = 0; i < this.elements.length; i++) {
            arr.push(this.elements[i].key);
        }
        return arr;
    };
}


那这样的Map如何使用呢,一样,Map map = new Map();OK 接下来就可以直接调用map里定义的方法啦。
分享到:
评论

相关推荐

    求js两个数组的差集,以便测试

    ### 知识点详解 #### 一、JavaScript数组与操作 ...综上所述,本篇文章主要介绍了如何使用JavaScript计算两个数组的差集,并提供了具体的实现方法和代码示例。同时,也探讨了如何优化算法以提高计算效率。

    JS实现数组删除指定元素功能示例

    本示例将详细解释如何使用JavaScript实现数组删除指定元素的功能,以及涉及的相关操作技巧。 首先,让我们分析提供的代码。这段代码定义了一个名为`del`的方法,该方法是通过扩展Array.prototype来实现的,允许我们...

    JS数组中对象去重操作示例

    在给定的示例中,我们看到一个包含多个对象的数组`tmp`,每个对象有`id`和`magicId`两个属性。下面将详细讨论如何实现这种去重操作。 1. **对象去重的基本思路** 在JavaScript中,由于对象是引用类型,直接比较两...

    JavaScript数组

    - **`concat()`:**连接两个或更多数组,并返回结果。 - **`sort()`:**对数组元素进行排序。 - **`reverse()`:**反转数组元素的顺序。 - **`indexOf()`/`lastIndexOf()`:**查找元素的第一个/最后一个出现的位置。...

    js两个数组对应清除的问题

    在JavaScript编程中,数组是常用的数据...在博客文章《js两个数组对应清除的问题》中,作者可能深入探讨了这些方法的实现细节、性能分析以及不同场景下的最佳实践。通过阅读原文,你可以获取更具体的信息和示例代码。

    JavaScript数组对象Array.pdf

    在JavaScript中,数组是一种动态数据结构,这意味着在创建后,你可以随时添加、删除或修改数组的元素。 创建Array对象有三种基本方式: 1. 不带参数的`new Array()`创建一个空数组。 2. 带一个参数`new Array(size)...

    javascript中去除数组重复元素的实现方法【实例】

    这个函数接收两个参数,一个是数组`_array`,另一个是需要检查的元素`_element`。函数首先检查输入的数组和元素是否有效,如果它们为空或不存在,函数返回`false`。接着,如果数组没有元素,函数会比较数组和元素...

    JavaScript数组去重1

    使用两个循环,外层循环遍历数组,内层循环检查当前元素是否与剩余未比较的元素相等,如果相等则删除当前元素。这种方法的时间复杂度为O(logN),但由于JavaScript数组删除元素的时间复杂度较高,因此在大数据量时...

    测试js数组的一点特性写的代码

    本篇将深入探讨JavaScript数组的一些关键特性和用法,通过分析`TestArray.html`、`TestArray2.html`、`TestArray3.html`中的代码示例,我们可以更全面地理解这些知识点。 ### 1. 创建数组 创建数组有两种常见方法:...

    js合并两个数组生成合并后的key:value数组

    在JavaScript中,合并两个数组以生成键值对(key:value)数组是一项常见的编程任务,尤其是在处理相关数据时。关键点在于如何将两个结构相同的数组(例如,一个是名称数组,另一个是对应的值数组)合并为一个对象...

    关于JavaScript 数组你应该知道的事情(推荐)

    JavaScript数组是JavaScript中的基本数据结构之一,它提供了一系列的内置方法,可以用来处理和操作数组内容。接下来,我会详细解释几个关键的JavaScript数组方法,包括map、filter、reduce以及展开操作符,并通过...

    Javascript基础之数组使用.doc

    以上只是JavaScript数组功能的一小部分,实际上还有更多高级操作,如`sort()`, `reverse()`, `some()`, `every()`, `find()`, `findIndex()`等,这些方法极大地增强了我们处理和操作数组的能力。熟悉并掌握这些概念...

    js数组去重-duplicateRemoval

    在JavaScript编程中,数组去重是一项常见的操作,特别是在处理数据集合时。本篇文章将深入探讨如何...在"js数组去重-duplicateRemoval"的示例中,`duplicateRemoval.js`可能包含了上述方法之一的实现,供学习和参考。

    JavaScript如何把两个数组对象合并过程解析

    这就是如何使用JavaScript将两个数组对象合并的过程。这种方法灵活且易于理解,但在处理大型数据集时可能会有性能问题,因为它创建了新的对象。对于更复杂的情况,如合并不等长的数组,或者当对象的属性结构不同时,...

    js 处理数组重复元素示例代码

    本文将深入探讨如何使用JavaScript有效地去除数组中的重复元素,并提供一个具体的示例代码来帮助理解和实践。 首先,我们可以使用几种基本的JavaScript方法来处理数组中的重复元素。以下是一些常用的方法: 1. **...

    javascript时间以及数组例子一共15个,需要的来,适合初学者参考,

    在给定的压缩包文件中,提供了15个关于JavaScript时间处理和数组操作的实例,这对于初学者深入理解这两个重要概念非常有帮助。 首先,我们要讨论的是JavaScript中的时间处理。在JavaScript中,我们可以使用内置的`...

    js代码-查找数组中重复出现的元素

    在JavaScript编程中,查找数组中重复出现的元素是一项常见的任务,尤其在数据处理和分析时。这个场景下,我们可以通过几种不同的方法实现。下面将详细解释两种常见的JS代码实现方式,以及它们的工作原理。 首先,...

    javascript稀疏数组(sparse array)和密集数组用法分析.docx

    根据元素的分布情况,JavaScript数组可以分为两种类型:稀疏数组和密集数组。理解这两种类型的差异对于优化内存使用和提高程序性能至关重要。 #### 二、稀疏数组与密集数组的概念 **稀疏数组(Sparse Array)**: - ...

    jsmap数据结构.pdf

    JavaScript中的Map数据结构是ES6引入的一种新的数据存储方式,它与传统的Object对象有显著区别。Map对象主要用于保存键值对,其特点是键可以是任意数据类型,而不仅仅是字符串或Symbol,这使得Map在处理非字符串键时...

    collectjs用于处理数组和对象的便利并且无依赖的JS库

    collect.js是一个轻量级、无依赖的JavaScript库,专门为处理数组和对象提供了一系列便利的操作方法。这个库旨在简化JavaScript中的数据操作,提高开发效率,尤其在处理大量数据时,能显著提升代码的可读性和可维护性...

Global site tag (gtag.js) - Google Analytics