flatten.js 354 Bytes
"use strict";

var isPlainObject = require("./is-plain-object")
  , forEach       = require("./for-each")
  , process;

process = function self(value, key) {
	if (isPlainObject(value)) forEach(value, self, this);
	else this[key] = value;
};

module.exports = function (obj) {
	var flattened = {};
	forEach(obj, process, flattened);
	return flattened;
};