프로젝트

일반

사용자정보

통계
| 개정판:

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

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

1

    
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
};