Что-то мне кажется, что результат должен быть таким примерно...
var arr = ['вася на пеньке, дупле:2:шт~рыбка соленая, сухая:10:кг~вода озаренная, темная:2:литра'];
var out = arr[0].split('~');
for(var i= 0; i<out.length; i++){
out[i] = out[i].split(':');
}
alert(JSON.stringify(out));