mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Fixed sorting issue with Css Selectors with same specificity.
This commit is contained in:
@@ -134,3 +134,36 @@ export function isDataURI(uri: string): boolean {
|
||||
|
||||
return firstSegment && firstSegment.indexOf("data:") === 0 && firstSegment.indexOf('base64') >= 0;
|
||||
}
|
||||
|
||||
export function mergeSort(arr, compareFunc) {
|
||||
if (arr.length < 2) {
|
||||
return arr;
|
||||
}
|
||||
|
||||
let middle = arr.length / 2;
|
||||
let left = arr.slice(0, middle);
|
||||
let right = arr.slice(middle, arr.length);
|
||||
|
||||
return merge(mergeSort(left, compareFunc), mergeSort(right, compareFunc), compareFunc);
|
||||
}
|
||||
|
||||
export function merge(left, right, compareFunc) {
|
||||
let result = [];
|
||||
while(left.length && right.length) {
|
||||
if (compareFunc(left[0], right[0]) <= 0) {
|
||||
result.push(left.shift());
|
||||
} else {
|
||||
result.push(right.shift());
|
||||
}
|
||||
}
|
||||
|
||||
while (left.length) {
|
||||
result.push(left.shift());
|
||||
}
|
||||
|
||||
while (right.length) {
|
||||
result.push(right.shift());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user