JavaScriptのデータ構造とアルゴリズム(c)のハッシュテーブルを達成するために

(B)は、ハッシュテーブル

研究ノート:データ構造とアルゴリズムのコースのcoderwhy JavaScript実装

2.コレクション

2.1の機能セット

ここに画像を挿入説明
ここに画像を挿入説明

2.2 JavaScriptの実装方法

ここに画像を挿入説明

一般的な操作の2.2組

ここに画像を挿入説明
ここに画像を挿入説明

コードパッケージは、オペレーションの共通セットは、2.3を実装しました

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>封装集合</title>
</head>
<body>
<script>
    // 封装集合类
    function Set() {
        // 属性
        this.items = {}  // 使用了js的object对象
        // 方法
        // add 方法
        Set.prototype.add = function (value) {
            // 判断集合中是否已经包含了该元素
            if(this.has(value)){
                return false; // 添加失败
            }else {
                // 将元素添加到集合中
                this.items[value] = value; // 这里是把属性和属性值都设置为要添加的元素
                return true;
            }
        } ;
        // has方法
        Set.prototype.has = function (value) {
            return this.items.hasOwnProperty(value);
        };
        // remove方法
        Set.prototype.remove = function (value) {
            // 1. 该集合中是否包含该元素
            if(!this.has(value)){
                return false;
            }else{
                // 2. 将元素从属性中删除
                delete this.items[value];
                return true;
            };

        };
        // clear 方法
        Set.prototype.clear = function () {
            this.items = {}
        };

        // size方法
        Set.prototype.size = function () {
            return Object.keys(this.items).length;
        };

        // 获取集合中所有的值
        Set.prototype.values = function () {
            return Object.keys(this.items);  // 获取object中的所有key
        }
    };

    // 测试Set类

    // 1. 创建Set类对象
    var set = new Set();

    // 2. 添加元素
    alert(set.add('abc'));
    alert(set.add('abc'));
    alert(set.add('cba'));
    alert(set.add('nba'));
    alert(set.add('mba'));
    alert(set.values());

    // 3. 删除元素
    alert(set.remove('mba'));
    alert(set.remove('mba'));
    alert(set.values());

    // 4. has方法
    alert(set.has('abc'));
    alert(set.has('aaabc'));

    // 5. 获取元素的个数
    alert(set.size());

    // 6. clear 方法
    set.clear();
    alert(set.size());
</script>
</body>
</html>
公開された17元の記事 ウォンの賞賛0 ビュー663

おすすめ

転載: blog.csdn.net/weixin_43545225/article/details/104301966
おすすめ