-
在cesium中,绘制几何图形,一次可以绘制一个,也可以绘制多个;所以很多方法就需要支持传入一个图元信息,也支持传入多个图元信息;
核心思想是:无论是单个参数还是数组,进入函数后都把它放入一个数组中,然后把这个数组展开成一维数组;
下面是3种实现这种函数的方法
1、无论是数组还是单个值都用数组的concat方法并入数组(虽然只是展平一层,但是已经满足了日常的开发需求)
function fnConcat(param) { const data = [].concat(param); }
2、用es6的flat方法展平数组(可接受单个值和多维数组)
function fnFlat(param) { let data = [param].flat(Infinity); }
3、手动写一个数组展平的方法(可接受单个值和多维数组)
展平数组的方法:
function flatten(arr) { return [].concat( ...arr.map(item => Array.isArray(item) ? flatten(item) : item) ) }
在需要用到的函数中使用:
function fnFlatten(param) { const data = flatten([param]); }
-