Например так:
var myDataObject = {}
, dataExample1 = { sip:"1.1.1.1:11233", title:"block", value:"val 1"}
, dataExample2 = { sip:"1.1.1.1:11233", title:"block", value:"val 2"}
, dataExample3 = { sip:"1.1.1.1:11233", title:"view", value:"val 3"}
;
addMyData = function(data){
var exData = myDataObject[data.sip]
, exTitle
;
if( !exData ){
exData = myDataObject[data.sip] = { title: {} }
}
exTitle = exData.title[data.title];
if( !exTitle ){
exTitle = exData.title[data.title] = []
}
exTitle.push( data.value );
}
addMyData(dataExample1);
addMyData(dataExample2);
addMyData(dataExample3);
console.log(myDataObject);
console.info(JSON.stringify(myDataObject, null, 4));
Если значение может быть только одно и старые значения не нужны - то и массив не нужен, а сразу записывать его в tittle.