UNPKG

@wayz/react-gl

Version:

React Component for DeckGL, Base on AMap, Mapbox GL

30 lines (29 loc) 930 B
/** * 对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; }