My attempt at a weighted search in JavaScript
I like it, from a once over:


map, filter, reduce etc. are not the most efficient functions, they make for readable code, not for speedy sorting/searching. See this : http://jsperf.com/arraymap, a simply for loop beats everything else every time, this also goes for filter,reduce etc.
I would change around the first block, there is too much happening horizontally:

return array.map(function (e) {
    return {
        element: e, 
        weight: weightedTests.map(function (weightedTest) {
            return weightedTest.test(e) * weightedTest.weight;
        }).reduce(function (previousValue, currentValue) { 
            return previousValue + currentValue; }, 0)
     };
 })

The sorting by weight I would do like this:

//sort first by weight if possible
var weightDifference = obj2.weight- obj1.weight;
if (weightDifference) {
  return weightDifference;
}

The last return 0 does not need to be in an else block
Other than that the code runs fine on JsHint, is well commented and easy to follow.