You have only to take all values of selects in the array conditions (the first for loop), to test if each servos satisfy this six conditions.
A servo (the second i loop) is to select for a criterion (the j loop with a boolean value selectedItem) if there is no conditions for this criterion (conditions[j] is zero and !conditions[j] is true) or if the conditions[j] is equal to is property (servos[criteres[j]] is servos.application, servos.sclass, servos.type, servos.motor, servos.bearings or servos.gears for j=0, 1, 2.. or 5).
This must be completed with the signification of "-"...
EDIT : I have make an error sorry. The condition is :
selectedItem = selectedItem && ((!conditions[j]) || (servos[i][criteres[j]]==conditions[j]));
I don't saw the this (onclick="datapull(this)". You wanted probably establish a list of selected servos (matches = Array()) and restrict this list with each select. Then you have to write
// work with currentSelect.value;
That is not a good idea. You have to consider all select if the user enlarge the choice...
With all this Elucubrations you will probably find the best solution. Sorry.