I'm trying to extends Array splice function in my NodeJS app, unfortunately it doesn't work, I get malformed result. It seems my array isn't one :
var EggDBArray = function(){
}
EggDBArray.prototype = Array.prototype;
EggDBArray.prototype.splice=(function(){
var original = Array.prototype.splice;
return function() {
return original.apply(this,arguments);
};
})();
When I run splice on a EggDBArray, I dont get [] but {}
console.log(myArray);
{ '0': { FIELD: 'a', FIELD_1: 'b', FIELD_2: 'c' },
'1': { FIELD: 'd', FIELD_1: 'e', FIELD_2: 'f' },
'2': { FIELD: 'g', FIELD_1: 'h', FIELD_2: 'i' },
'3': { FIELD: 'j', FIELD_1: 'k', FIELD_2: 'l' },
'4': { FIELD: 'm', FIELD_1: 'n', FIELD_2: 'o' },
'5': { FIELD: 'o', FIELD_1: 'p', FIELD_2: 'q' },
'6': { FIELD: 'u', FIELD_1: 'v', FIELD_2: 'w' },
'7': { FIELD: 'r', FIELD_1: 's', FIELD_2: 't' },
'8': { FIELD: 'x', FIELD_1: 'y', FIELD_2: 'z' },
'9': { FIELD: 'a', FIELD_1: 'b', FIELD_2: 'c' },
'10': { FIELD: 'd', FIELD_1: 'e', FIELD_2: 'f' },
'11': { FIELD: 'm', FIELD_1: 'n', FIELD_2: 'o' },
'12': { FIELD: 'o', FIELD_1: 'p', FIELD_2: 'q' },
'13': { FIELD: 'r', FIELD_1: 's', FIELD_2: 't' },
'14': { FIELD: 'u', FIELD_1: 'v', FIELD_2: 'w' },
'15': { FIELD: 'x', FIELD_1: 'y', FIELD_2: 'z' },
'16': { FIELD: 'g', FIELD_1: 'h', FIELD_2: 'i' },
'17': { FIELD: 'j', FIELD_1: 'k', FIELD_2: 'l' },
'18': { FIELD: 'a', FIELD_1: 'b', FIELD_2: 'c' },
'19': { FIELD: 'd', FIELD_1: 'e', FIELD_2: 'f' },
'20': { FIELD: 'g', FIELD_1: 'h', FIELD_2: 'i' },
'21': { FIELD: 'j', FIELD_1: 'k', FIELD_2: 'l' },
'22': { FIELD: 'm', FIELD_1: 'n', FIELD_2: 'o' },
'23': { FIELD: 'o', FIELD_1: 'p', FIELD_2: 'q' },
'24': { FIELD: 'r', FIELD_1: 's', FIELD_2: 't' },
'25': { FIELD: 'u', FIELD_1: 'v', FIELD_2: 'w' },
'26': { FIELD: 'x', FIELD_1: 'y', FIELD_2: 'z' },
length: 27 }
I found "example" here : How to extend Array.prototype.push()?