Skip to content
On this page

对象方法

clear()

clear (obj[, defs, assigns]) 清空对象; defs如果不传(清空所有属性)、如果传对象(清空并继承)、如果传值(给所有赋值)

                let a = [11, 22, 33, 33]
                mmqUtils.clear(a) // []
                mmqUtils.clear(a, undefined) // [undefined, undefined, undefined, undefined]
                mmqUtils.clear(a, null) // [null, null, null, null]
                let b = {b1: 11, b2: 22}
                mmqUtils.clear(b) // {}
                mmqUtils.clear(b, undefined) // {b1: undefined, b2: undefined}
                mmqUtils.clear(b, null) // {b1: null, b2: null}

clone()

clone (obj, deep) 浅拷贝/深拷贝,和 assign 的区别是支持对象的递归克隆

                 const v1 = {a: 11, b: {b1: 22}}
                 const v2 = mmqUtils.clone(v1, false)
                 const v3 = mmqUtils.clone(v1, true)
                 expect(v2).toEqual({a: 11, b: {b1: 22}})
                 expect(v1.a === v2.a).toEqual(true)
                 expect(v1 === v3).toEqual(false)
                 const a = {
                 name: 'ddds',
                 age: 23,
                 hobbies: { sports: '篮球', tv: '雍正王朝' },
                 works: ['2020', '2021'],
                 map: new Map([['haha', 111], ['xixi', 222]]),
                 set: new Set([1, 2, 3]),
                 func: (name: any, age: any) => `${name}今年${age}岁啦!!!`,
                 sym: Symbol(123),
                 reg: new RegExp(/haha/g),
                 }
                 const b = mmqUtils.clone(a, true)
                 expect(a.func === b.func).toEqual(false)

objectEach()

objectEach (obj, iterate [, context]) 对象迭代器

                 const rest: any[] = []
                 mmqUtils.objectEach({ a: 11, b: 22, c: 33, d: 44 }, (item: any, key: number, obj: any) => {
                 rest.push([item, key])
                 })
                 expect(
                 rest
                 ).toEqual([[11, 'a'], [22, 'b'], [33, 'c'], [44, 'd']])

Released under the MIT License.