Sha256: 5ea3bf5863874e75c7e0fcf667246f00d9f5603a100dba98a4b31a1ba1faa505
Contents?: true
Size: 1.02 KB
Versions: 62
Compression:
Stored size: 1.02 KB
Contents
define(['./forOwn', '../lang/isPlainObject'], function (forOwn, isPlainObject) { /* * Helper function to flatten to a destination object. * Used to remove the need to create intermediate objects while flattening. */ function flattenTo(obj, result, prefix, level) { forOwn(obj, function (value, key) { var nestedPrefix = prefix ? prefix + '.' + key : key; if (level !== 0 && isPlainObject(value)) { flattenTo(value, result, nestedPrefix, level - 1); } else { result[nestedPrefix] = value; } }); return result; } /** * Recursively flattens an object. * A new object containing all the elements is returned. * If level is specified, it will only flatten up to that level. */ function flatten(obj, level) { if (obj == null) { return {}; } level = level == null ? -1 : level; return flattenTo(obj, {}, '', level); } return flatten; });
Version data entries
62 entries across 62 versions & 1 rubygems