, , , js, , :
function MapKeys() {
var tmp,tmpEmpty,ChildObjTp,ChildIsAr;
var levelCurrent=0;
var record=this;
function isArray(obj) {return typeof(obj)=='object'&&(obj instanceof Array);}
function emptyIf(obj){if (typeof(this[obj])=='function') {return ' ';} else {return obj+' ';} }
function keysToArray(obj,propArr,levelMax, _level) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] instanceof Object && ! (obj[key] instanceof Array))
if (levelMax < 0 || _level+1 <= levelMax) {
{propArr[1].push(keysToArray(obj[key],[key,[] ],levelMax,_level+1));}
}
else {}
{propArr[1].push(key);}
}
}
return propArr;
}
function arrayToStr(lst,prevKey,delimiter, inclKeys,levelMax,_level,_levelMaxFound) {
var rt,i;
_levelMaxFound=Math.max(_level,_levelMaxFound);
if (prevKey !=='') {prevKey += '.';}
var rtStr ='';
if (lst[0]) {prevKey += lst[0]+'.';}
if (inclKeys) {rtStr += prevKey.slice(0,-1);}
for (var n in lst[1]) {
i=lst[1][n];
if (typeof(i)=='string') {
rtStr += delimiter + prevKey + i;
}
else
{
if (levelMax < 0 || _level+1 <= levelMax) {
rt=arrayToStr(i,prevKey.slice(0,-1),delimiter, inclKeys,levelMax,_level+1,_levelMaxFound);
rtStr += delimiter + rt[0];
_levelMaxFound=Math.max(rt[1],_levelMaxFound);
}
else {}
}
}
if (rtStr[0] == delimiter) {rtStr=rtStr.slice(1);}
return [rtStr,_levelMaxFound]
}
var keysV=keysToArray(this,[null,[] ] ,parms.levelMax, 0);
keysV = arrayToStr(keysV,'',' ', parms.inclHeaderKeys,-1,0,0);
var MaxDepth=keysV[1];
keysV=keysV[0].split(' ');
keysV.sort();
keysV=keysV.join(' ');
emit ({type:'fieldsGrp',fields:keysV}, {cnt:1, percent:0.0,depth:MaxDepth,exampleIds:[this._id]});}
function ReduceKeys (key, values) {
var total = {cnt:0, percent:0.0,depth:values[0].depth,exampleIds:[]}
for(var i in values) {
total.cnt += values[i].cnt;
if (total.exampleIds.length < parms.Reduce_ExamplesMax){
total.exampleIds = values[i].exampleIds.concat(total.exampleIds);
}
}
return total;}