# 操作 Object 常用方法
# isValid: 有效值
/** * 有效值 * @param {any} val 要判断的值 */ export function isValid(val: any): Boolean { return !!val || val === 0 }
ok
1
2
3
4
5
6
7
2
3
4
5
6
7
# pick: 挑选属性,返回新对象
浅拷贝
/** * 返回指定属性后的对象, 不改变源对象 * 参考 lodash : https://lodash.com/docs/4.17.15#pick * @param {Object} obj 目标对象 * @param {String[]} keys 指定的对象属性 * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * pick(object, ['a', 'c']); * // => { 'a': 1, 'c': 3 } */ interface Obj { [key: string]: any } export function pick(obj: Obj, keys: string[]): object { return keys.reduce((acc, cur) => (isValid(obj[cur]) && (acc[cur] = obj[cur]), acc), {} as Obj) }
ok
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# omit: 忽略属性,返回新对象
浅拷贝
/** * 返回忽略属性后的对象, 不改变源对象 * 参考 lodash : https://lodash.com/docs/4.17.15#omit * @param {Object} obj 目标对象 * @param {String[]} keys 要忽略的对象属性 * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * omit(object, ['a', 'c']); * // => { 'b': '2' } */ export function omit(obj: object, keys: string[]): object { return keys.reduce((acc, cur) => (delete acc[cur], acc), { ...obj } as { [key: string]: any }) }
ok
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
← DOM utils Canvas 常用方法 →