解决办法:从后往前删
function clearLayerWithIdArr(arr){
let map = getMap()
let layers = map.getLayers().getArray()
for(let i=layers.length-1;i>=0;i--){
let layer = layers[i]
let layerId = layer.get('layerId')
if(arr.indexOf(layerId) > -1){
layer.getSource().clear()
map.removeLayer(layer)
}
}
//会造成循环中部分layer删除不掉的情况
// map.getLayers().forEach(layer => {
// let layerId = layer.get('layerId')
// if(arr.indexOf(layerId) > -1){
// layer.getSource().clear()
// map.removeLayer(layer)
// }
// })
}