@wayz/react-gl
Version:
React Component for DeckGL, Base on AMap, Mapbox GL
30 lines (29 loc) • 930 B
JavaScript
/**
* 对layers根据zIndex进行快速排序
*
* @param {*} layers
* @return {*} {*}
*/
export function quickSortLayerByZIndex(layers) {
let len = layers.length;
if (len > 1) {
let pivot = Math.floor(len / 2);
let pivotLayerZIndex = layers[pivot].props.zIndex ? layers[pivot].props.zIndex : 0;
let left = [], center = [], right = [];
for (let i = 0; i < len; i++) {
let layer = layers[i];
let layerZIndex = layer.props.zIndex ? layers[i].props.zIndex : 0;
if (layerZIndex > pivotLayerZIndex) {
right.push(layer);
}
else if (layerZIndex < pivotLayerZIndex) {
left.push(layer);
}
else {
center.push(layer);
}
}
return [...quickSortLayerByZIndex(left), ...center, ...quickSortLayerByZIndex(right)];
}
return layers;
}