1 | var helperDeleteProperty = require('./helperDeleteProperty')
|
2 |
|
3 | var isPlainObject = require('./isPlainObject')
|
4 | var isObject = require('./isObject')
|
5 | var isArray = require('./isArray')
|
6 | var isNull = require('./isNull')
|
7 | var assign = require('./assign')
|
8 | var objectEach = require('./objectEach')
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | function clear (obj, defs, assigns) {
|
19 | if (obj) {
|
20 | var len
|
21 | var isDefs = arguments.length > 1 && (isNull(defs) || !isObject(defs))
|
22 | var extds = isDefs ? assigns : defs
|
23 | if (isPlainObject(obj)) {
|
24 | objectEach(obj, isDefs ? function (val, key) {
|
25 | obj[key] = defs
|
26 | } : function (val, key) {
|
27 | helperDeleteProperty(obj, key)
|
28 | })
|
29 | if (extds) {
|
30 | assign(obj, extds)
|
31 | }
|
32 | } else if (isArray(obj)) {
|
33 | if (isDefs) {
|
34 | len = obj.length
|
35 | while (len > 0) {
|
36 | len--
|
37 | obj[len] = defs
|
38 | }
|
39 | } else {
|
40 | obj.length = 0
|
41 | }
|
42 | if (extds) {
|
43 | obj.push.apply(obj, extds)
|
44 | }
|
45 | }
|
46 | }
|
47 | return obj
|
48 | }
|
49 |
|
50 | module.exports = clear
|