Просто берёшь и описываешь пошагово всю логику, какие проблемы: 
alert(
[-2, 2, 4, 6, 8, 10, 3, 5, 7, 9, -1, -11].sort(function(a, b){
  if(a === b) return 0;
  var amod = a % 2 === 0;
  var bmod = b % 2 === 0;
  
  if(amod && bmod)
    return a > b ? -1 : 1
  if(!amod && !bmod)
    return a > b ? 1 : -1
  if(amod)
    return -1
  if(bmod)
    return 1
})
)
 Потом уже можешь свернуть и сократить, но это дело десятое.