zent
Version:
一套前端设计语言和基于React的实现
50 lines (33 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _forEach = require('lodash/forEach');
var _forEach2 = _interopRequireDefault(_forEach);
var _isPlainObject = require('lodash/isPlainObject');
var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
var _forOwn = require('lodash/forOwn');
var _forOwn2 = _interopRequireDefault(_forOwn);
var _isString = require('lodash/isString');
var _isString2 = _interopRequireDefault(_isString);
var _isArray = require('lodash/isArray');
var _isArray2 = _interopRequireDefault(_isArray);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var flattenNames = function flattenNames() {
var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var names = [];
(0, _forEach2['default'])(things, function (thing) {
if ((0, _isArray2['default'])(thing)) {
names = names.concat(flattenNames(thing));
} else if ((0, _isPlainObject2['default'])(thing)) {
(0, _forOwn2['default'])(thing, function (value, key) {
value === true && names.push(key);
names.push(key + '-' + value);
});
} else if ((0, _isString2['default'])(thing)) {
names.push(thing);
}
});
return names;
};
exports['default'] = flattenNames;