chrome sort bug
Chrome version 69.0.3497.100 has a sort bug
by evgkch
JavaScript
const currentObj = {
'@version': 'current',
'@dateCreated': 'origin',
};
const arr = [
{ timeStamp: 'current' },
{ timeStamp: 4 },
{ timeStamp: 'origin' },
{ timeStamp: 2 },
{ timeStamp: 5 },
];
const sortVersionsByPriority = () => {
return arr.sort((a, b) => {
if (currentObj['@dateCreated'] == a.timeStamp &&
currentObj['@version'] == b.timeStamp)
return -1;
if (currentObj['@dateCreated'] == b.timeStamp &&
currentObj['@version'] == a.timeStamp)
return 1;
if (currentObj['@dateCreated'] == a.timeStamp ||
currentObj['@version'] == a.timeStamp)
return -1;
return 0;
});
};
// right answer is [{timeStamp: "origin"}, {timeStamp: "current"}, {timeStamp: 4}, {timeStamp: 2}, {timeStamp: 5}]
// Chrome version 69.0.3497.100 has a bug
console.log(sortVersionsByPriority());
console.log(arr
.sort((a, b) => currentObj['@version'] == a.timeStamp ? -1 : 0)
.sort((a, b) => currentObj['@dateCreated'] == a.timeStamp ? -1 : 0)
)
const _arr1 = arr
.sort((a, b) => currentObj['@version'] == a.timeStamp ? -1 : 0);
const _arr2 = arr
.sort((a, b) => currentObj['@dateCreated'] == a.timeStamp ? -1 : 0);
console.log(_arr2)