DOM 相关 - DOM 扩展

博客分类: 江河计划

DOM 相关 - DOM 扩展

算法

归并

var arr = [4,2,3,2,3,5,1,0,7,6];
Array.prototype.mergeSortRec = function(){
    if (this.length === 1) return this;
    var mid = parseInt(this.length / 2, 10),
        left = this.slice(0, mid),
        right = this.slice(mid);
    return this.merge(left.mergeSortRec(), right.mergeSortRec());
}

Array.prototype.merge = function(left, right){
    var il = 0,
        ir = 0,
        result = [];
    while(il < left.length && ir < right.length){
        if(left[il] < right[ir]){
            result.push(left[il++]);
        }else{
            result.push(right[ir++]);
        }
    }
    
    while(il < left.length){
        result.push(left[il++]);
    }
    
    while(ir < right.length){
        result.push(right[ir++]);
    }
    return result;
}

实现栈

class Stack {
    private items: any[] = [];
    push(...elements: any[]) {
        this.items = this.items.concat(elements)
    }
    pop() {
        return this.items.pop();
    }
    peek() {
        return this.items.length;
    }
    isEmpty(): boolean {
        return this.items.length === 0;
    }
    clear() {
        this.items = [];
    }
    size(): number {
        return this.items.length;
    }
    print(): string {
        return this.items.toString();
    }
}

正则

舍去两位小数之后:'2123.23123123'.replace(/(\d*\.\d{2})(\d*)/, '$1')

时分秒:/((^[0|1]\d)|(^2[0-3])):[0-5]\d:[0-5]\d$/

DOM 扩展

选择符

元素遍历

类名操作

element.classList返回数组,是该节点的类名

自定义数据属性

data-xxx在 dom 节点存放数据,使用element.dataset获取存放在dom上的数据

插入节点

让节点出现到视窗

子节点获取与检测