@wayz/react-gl
Version:
React Component for DeckGL, Base on AMap, Mapbox GL
39 lines (38 loc) • 1.37 kB
JavaScript
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
/**
* 对layers根据zIndex进行快速排序
*
* @param {*} layers
* @return {*} {*}
*/
export function quickSortLayerByZIndex(layers) {
var len = layers.length;
if (len > 1) {
var pivot = Math.floor(len / 2);
var pivotLayerZIndex = layers[pivot].props.zIndex ? layers[pivot].props.zIndex : 0;
var left = [], center = [], right = [];
for (var i = 0; i < len; i++) {
var layer = layers[i];
var 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 __spreadArray(__spreadArray(__spreadArray([], quickSortLayerByZIndex(left), true), center, true), quickSortLayerByZIndex(right), true);
}
return layers;
}