1.0.9 • Published 3 years ago

kp-merge v1.0.9

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

一、内置方法: 可以使用 import { functionName } 调用

1. 设定属性 setProp(Object, String|Array, Any, Boolean?):void

        使用方法: const a = {}; setProp(a, 'c1.c2.name', 10); -> a = {c1: c2: {name: 10}};
                  const a = {c1: c2: {name: 'c2'}}; setProp(a, 'c1.c2.name', 11, false); -> a.c1.c2.name = 'c2'; 
                  // 最后一个参数主要用于 当不确定是否存在某个参数时候,如果存在,是否覆盖,默认覆盖,false 为不覆盖


2. 获取属性 getProp(Object, String|Array):any

        使用方法:getProp(a, 'c1.c2.name');

3. 检测属性是否存在 checkProp(Object, String|Array): boolean
        使用方法: checkProp(a, 'c1.c2.name'); 

4. 深度拷贝 cloneDeep(Object: T): T 

        使用方法 b = {name: 'b', c1: {name: 'b_c1', function(){}}}; a = cloneDeep(b); -> a = {name: 'b', c1: {name: 'b_c1', function(){}}};


5. 深度合并 mergeDeep(Object: T, Object: K, Boolean?): K 

        使用方法 a = {name_1: 'a', c: { age: 10} }; b = {name: 'b',c: { age: 11} }; mergeDeep(a, b); -> a = {name_1: 'a', name: 'b', c: { age: 10} }; // 同名引用类型合并,基础类型覆盖
                q = {name_1: 'a', c: { age: 10} }; w = {name: 'b',c: { ok: 1} }; mergeDeep(q, w, true); // 最后一个参数传 true 同名引用类型 后者覆盖前者

二、内置类:

    使用方法:
    import Merge from 'kp-merge';
    const a = {name_1: 'a', children: ['a_1', 'a_2']};
    const b = {name_2: 'b', children: ['b_1', 'b_2']};
    const c = {name: 'c', fn: function(){console.log(this)}}
    const merge  = new Merge(a, b, c); // arguments : ...Object[]?
    
    1. merge.value 
            // 获取合并值

                {name_1: "a", children: ['b_1', 'b_2'], name_2: "b", name: "c", fn: ƒ}            
    
    2.  merge.set(String|Array, Any);
            // 设定属性(可设定undefined的属性,支持多层)
            // merge.set('test.testChild.testChildProp', {propName: 'name'});
    
    3.  merge.merge(Object)
            // 新增合并对象
            // merge.merge({name_3: 'aa', child: {name: 'child'}})   

    4. merge.overWrite(...Object[]?)
            // 重写 merge.value
            // merge.overWrite()
            // merge.overWrite({name: 1})
            // merge.overWrite({name: 1}, {age: 2})
    
    5. merge.cover(Object)
            // 覆盖同名引用类型
1.0.9

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago