js函式既可以接收單個引數也可以接收陣列的方法
阿新 • • 發佈:2022-05-21
-
在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]); }
-