I'm trying to sort only a subset of an array, the subset is a filtered version of that array, and I need the whole array (with the subset sorted ) as a result.
Here is the main array :
var data = [
{ name: "Cccc", sortCriteria: 1 },
{ name: "Bbbb", sortCriteria: 1 },
{ name: "Dddd", sortCriteria: 0 },
{ name: "Eeee", sortCriteria: 1 },
{ name: "Ffff", sortCriteria: 0 },
];
The sort criteria is used to filter the array :
var data2 = data.filter(function (attribute) {
return attribute.sortCriteria == 1;
});
Finally i'm sorting the filtered array :
var data3 = data2.sort(function (a, b) {
var aname = a.name.toLowerCase();
var bname = b.name.toLowerCase();
if (aname < bname) {
return -1;
}
if (aname > bname) {
return 1;
}
});
Every step works but data2 & data3 are subset only (i need the wole array) and data is obviously not sorted.
My result should be :
Bbbb
Cccc
Dddd
Eeee
Ffff
Any idea how that can be done using ecmascript 5 (the order can be random, this is a example) ?
Edit : the following question doesnt address my issue because it's not ecma5 compliant.
