There are lots of answers on SO for similar questions, which all describe how to implement a custom sort function to sort an array of javascript objects.
However, I was wondering if it might be possible to implement a more abstract custom sort that would allow me to pass the name of the property of the objects on which I want it to sort. This might save me having to implement very similar functions over and over again.
So if I had an object constructor like:
function Car(mph, cc) {
this.maxSpeed = mph;
this.engineSize = cc;
}
then instead of implementing two sort functions:
function sortCarsOnMaxSpeed(a, b) { return a.maxSpeed - b.maxSpeed; }
function sortCarsOnEngineSize(a, b) { return a.engineSize - b.engineSize; }
I could have some sort of generic function such as:
function sortObjectsOnProperty(a, b, property) {
return a[property] - b[property];
}
but the custom sort seems to only take 2 arguments.
Any suggestions as to how I could do this?
Many thanks.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…