프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / node_modules / object-component / index.js

이력 | 보기 | 이력해설 | 다운로드 (1.15 KB)

1 39 HKM
2
/**
3
 * HOP ref.
4
 */
5
6
var has = Object.prototype.hasOwnProperty;
7
8
/**
9
 * Return own keys in `obj`.
10
 *
11
 * @param {Object} obj
12
 * @return {Array}
13
 * @api public
14
 */
15
16
exports.keys = Object.keys || function(obj){
17
  var keys = [];
18
  for (var key in obj) {
19
    if (has.call(obj, key)) {
20
      keys.push(key);
21
    }
22
  }
23
  return keys;
24
};
25
26
/**
27
 * Return own values in `obj`.
28
 *
29
 * @param {Object} obj
30
 * @return {Array}
31
 * @api public
32
 */
33
34
exports.values = function(obj){
35
  var vals = [];
36
  for (var key in obj) {
37
    if (has.call(obj, key)) {
38
      vals.push(obj[key]);
39
    }
40
  }
41
  return vals;
42
};
43
44
/**
45
 * Merge `b` into `a`.
46
 *
47
 * @param {Object} a
48
 * @param {Object} b
49
 * @return {Object} a
50
 * @api public
51
 */
52
53
exports.merge = function(a, b){
54
  for (var key in b) {
55
    if (has.call(b, key)) {
56
      a[key] = b[key];
57
    }
58
  }
59
  return a;
60
};
61
62
/**
63
 * Return length of `obj`.
64
 *
65
 * @param {Object} obj
66
 * @return {Number}
67
 * @api public
68
 */
69
70
exports.length = function(obj){
71
  return exports.keys(obj).length;
72
};
73
74
/**
75
 * Check if `obj` is empty.
76
 *
77
 * @param {Object} obj
78
 * @return {Boolean}
79
 * @api public
80
 */
81
82
exports.isEmpty = function(obj){
83
  return 0 == exports.length(obj);
84
};