diff options
Diffstat (limited to 'deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js')
-rw-r--r-- | deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js b/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js new file mode 100644 index 0000000000..bbafd1d5ad --- /dev/null +++ b/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js @@ -0,0 +1,32 @@ +var isArrayLike = require('./isArrayLike'), + isIndex = require('./isIndex'); + +/** + * The base implementation of `_.at` without support for string collections + * and individual key arguments. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {number[]|string[]} props The property names or indexes of elements to pick. + * @returns {Array} Returns the new array of picked elements. + */ +function baseAt(collection, props) { + var index = -1, + isNil = collection == null, + isArr = !isNil && isArrayLike(collection), + length = isArr ? collection.length : 0, + propsLength = props.length, + result = Array(propsLength); + + while(++index < propsLength) { + var key = props[index]; + if (isArr) { + result[index] = isIndex(key, length) ? collection[key] : undefined; + } else { + result[index] = isNil ? undefined : collection[key]; + } + } + return result; +} + +module.exports = baseAt; |