美文网首页读书
JavaScript数据结构笔记 - 数组

JavaScript数据结构笔记 - 数组

作者: 未定义变量 | 来源:发表于2021-04-14 22:12 被阅读0次

    静态数组(Static Array)vs 动态数组(Dynamic Array)

    静态数组是一个固定长度的数组,内含n个可索引的(indexable)元素,索引范围是[0, n-1]。

    相反,动态数组的长度不固定。

    复杂度

    JavaScript数据结构笔记 - 数组

    *静态数组由于长度固定,无法进行插入、结尾插入、删除操作。

    手写动态数组

    数据结构

    const fruit = {
        length: 4,
        data: {
            0: "苹果",
            1: "香蕉",
            2: "桃子",
            3: "菠萝"
        }
    }
    

    实现

    // 定义MyArray类
    class MyArray {
      // 构造器
      constructor() {
        // length属性保存数组的长度
        this.length = 0;
        // data属性保存每个元素
        this.data = {};
      }
      // push或append函数,在数组结尾插入新元素
      push(element) {
        this.data[this.length] = element;
        this.length++;
        return this.data;
      }
      // insertAt函数,在给定位置插入新元素
      insertAt(item, index) {
        for (let i = this.length; i >= index; i--) {
          this.data[i] = this.data[i - 1];
        }
        this.data[index] = item;
        this.length++;
        return this.data;
      }
      // deleteAt函数,删除给定位置的元素
      deleteAt(index) {
        for (let i = index; i < this.length - 1; i++) {
          this.data[i] = this.data[i + 1];
        }
        delete this.data[this.length - 1];
        this.length--;
        return this.data;
      }
      // getElementAtIndex函数,返回给定位置的元素
      getElementAtIndex(index) {
        return this.data[index];
      }
    }
    

    相关文章

      网友评论

        本文标题:JavaScript数据结构笔记 - 数组

        本文链接:https://www.haomeiwen.com/subject/ihtrlltx.html