cucumber
Version:
The official JavaScript implementation of Cucumber.
42 lines (36 loc) • 1.14 kB
JavaScript
function HashDataTable(rawArray) {
var self = {
raw: function raw() {
var hashKeys = self.getHashKeys();
var hashValueArrays = self.getHashValueArrays();
var hashes = self.createHashesFromKeysAndValueArrays(hashKeys, hashValueArrays);
return hashes;
},
getHashKeys: function getHashKeys() {
return rawArray[0];
},
getHashValueArrays: function getHashValueArrays() {
var _rawArray = [].concat(rawArray);
_rawArray.shift();
return _rawArray;
},
createHashesFromKeysAndValueArrays: function createHashesFromKeysAndValueArrays(keys, valueArrays) {
var hashes = [];
valueArrays.forEach(function (values) {
var hash = self.createHashFromKeysAndValues(keys, values);
hashes.push(hash);
});
return hashes;
},
createHashFromKeysAndValues: function createHashFromKeysAndValues(keys, values) {
var hash = {};
var len = keys.length;
for (var i = 0; i < len; i++) {
hash[keys[i]] = values[i];
}
return hash;
}
};
return self;
}
module.exports = HashDataTable;