JSFiddle - React, Tailwind, and code Playground
JavaScript
var a = [{
id: 'x0',
name: 'Foo',
isClone: false,
wasCloned: true,
originalId: ''
},{
id: 'y1',
name: 'Bar',
isClone: false,
wasCloned: false,
originalId: ''
},{
id: 'z2',
name: 'Foo',
isClone: true,
wasCloned: false,
originalId: 'x0'
}];
var sorted = a.sort(
function (a, b) {
var compareA = a.originalId || a.id;
var compareB = b.originalId || b.id;
if (compareA < compareB) {
return -1;
} else if (compareA > compareB) {
return 1;
} else {
return a.originalId !== '' ? -1 : 1;
}
}
);
console.log(sorted);