Flattening single item arrays test
This needed to be tested so it could be used in production code.
by Matt Rummler
JavaScript
function flattenSingleItemArray(data)
{
if(Object.toType(data)==='array')
{
alert('data was found to be an array');
if(data.length==1)
{
alert('data was found to have a length of 1');
alert('object properties prior to flattening: '+Object.getOwnPropertyNames(data)+' And now datatype before: '+Object.toType(data));
moreFlatData=data[0];
alert('object properties after flattening: '+Object.getOwnPropertyNames(moreFlatData)+' And now datatype after: '+Object.toType(moreFlatData));
return moreFlatData;
}
else
{
return false;
}
}
}
Object.toType = (function toType(global)
{
return function(obj)
{
if (obj === global)
{
return "global";
}
return ({}).toString.call(obj).match(/\s([a-z|A-Z]+)/)[1].toLowerCase();
};
})(this);
var TestObject={item1:'value1',item2:'value2',item3:'value3'};
var testArray=['arrayItem1','arrayItem2','arrayItem3','arrayItem4','arrayItem5'];
var topLevelBoundingArray=[{secondLevelBoundingArray:[{key1:'value1',key2:'value2',key3:'value3'}]}];
//var objKeysArray=Object.keys(TestObject);
//alert('object length: '+objKeysArray.length);
//alert('object length a different way: '+Object.keys(TestObject).length);
//alert('array length: '+testArray.length);
var shallowArray=['singleItem'];
var returnFromFlatten=null;
returnFromFlatten=flattenSingleItemArray(topLevelBoundingArray);
if(returnFromFlatten)
{
alert('the return from the array to be flattened: '+returnFromFlatten);
}
else
{
alert('returnFromFlatten has a false value');
}