1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
* 对象工具
* @author 陈皮皮 (ifaswind)
* @version 20210929
*/
const ObjectUtil = {
/**
* 判断指定值是否是一个对象
* @param {any} arg 参数
*/
isObject(arg) {
return Object.prototype.toString.call(arg) === '[object Object]';
},
/**
* 对象中是否包含指定的属性
* @param {object} object 对象
* @param {string} name 属性名
*/
containsProperty(object, name) {
let result = false;
const search = (_object) => {
if (ObjectUtil.isObject(_object)) {
for (const key in _object) {
if (key == name) {
result = true;
return;
}
search(_object[key]);
}
} else if (Array.isArray(_object)) {
for (let i = 0, l = _object.length; i < l; i++) {
search(_object[i]);
}
}
}
search(object);
return result;
},
/**
* 对象中是否包含指定的值
* @param {object} object 对象
* @param {any} value 值
*/
containsValue(object, value) {
let result = false;
const search = (_object) => {
if (ObjectUtil.isObject(_object)) {
for (const key in _object) {
if (_object[key] === value) {
result = true;
return;
}
search(_object[key]);
}
} else if (Array.isArray(_object)) {
for (let i = 0, l = _object.length; i < l; i++) {
search(_object[i]);
}
}
}
search(object);
return result;
},
};
module.exports = ObjectUtil;