А зачем вам эти фильтры и прочая тряхомудия?
function myLovelySearch(arr,val,fld){
fld=fld||'id';
for(var i=0;i<arr.length;i++)
if(typeof arr[i][fld]!=='undefined' && val==arr[i][fld])
return arr[i];
}
var found = myLovelySearch(obj.num,'Два','name');
console.log(found.id);
It's all folks. Проверка на ундефайнед нужна на случай, если такого поля там нет вообще.
Что делать с нотфаунд в ООП - это уже отдельный стон.