JSFiddle - React, Tailwind, and code Playground
by slace
JavaScript
var dataGen = (function() {
return {
prepare: function(obj) {
function foo() {
var props = {},
values = {},
num = 0;
for(var prop in obj) {
if(obj.hasOwnProperty(prop)) {
props[prop] = obj[prop];
}
}
var bar = {
num: function(x) {
num = x;
return bar;
},
set: function(key, value) {
if(props[key]) {
values[key] = value;
}
return bar;
},
make: function() {
var x = num,
ret = [];
while(x--) {
var baz = {};
for(var prop in props) {
if(props.hasOwnProperty(prop)) {
baz[prop] = values[prop] || props[prop];
}
}
ret.push(baz);
}
console.log(ret);
return ret;
}
};
return bar;
}
return new foo();
}
};
})();
var foo = dataGen.prepare({ foo: 'bar' }).num(5).set('foo', 'woo').make();
for(var i = 0, l = foo.length; i<l; i++) {
console.log(foo[i].foo);
}