![](/img/trans.png)
[英]How can I get each object from multiple arrays and put them all into one array
[英]How to put all the elements from the array as one variable each one
我有一個像這樣的數組(它是動態創建的,所以長度是可變的):
var coord_list = [[-7.84 , 12.32],[-8.30 , 10.42],[-11.84 , 12.32]....]
問題是我需要將每個元素(坐標) "[-7.84 , 12.32]"
放入草皮模塊中:
turf.lineString([[-7.42,9.125],[-8.43,9.800]]...(all of them), {name: 'line 2'});
。
我嘗試直接放入var coord_list
數組,但即使它內部結構相同也不起作用。
turf.lineString([coord_list], {name: 'line 2'}); --> Gives the Error: coordinates must be an array of two or more positions
turf.lineString(coord_list, {name: 'line 2'}); --> Gives the Error: coordinates must contain numbers
我怎樣才能將每一個都放入草皮配方中?
從你的編輯顯示錯誤我會假設你的坐標實際上被添加為字符串而不是數字創建coord_list
。
根據草皮文檔 ,語法的一個例子是:
var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});
也就是說,第一個參數是位置數組。
所以你的第二行似乎是正確的:
var coord_list = [[-7.84 , 12.32],[-8.30 , 10.42],[-11.84 , 12.32]....] // is an array of positions
turf.lineString(coord_list, {name: 'line 2'}); --> Gives the Error: coordinates must contain numbers
從錯誤消息中可以看出,動態生成的coord_list包含字符串而不是數字
要測試這個,你可以在console.log中輸入每個位置值的類型。
要將每個值轉換為數字,請將每個位置的x,y值傳遞到:
let xNum = parseFloat(x);
let yNum = parseFloat(y);
在將它們送入turf.lineString([[xNum, yNum],[xNum2, yNum2],...],{name: 'line 2'})
如果您無法控制如何生成coord_list,您可以像這樣修復它:
let arr = [['-7.84' , '12.32'],['-8.30' , '10.42'],['-11.84' , '12.32']];
let coord_list = arr.map(position => {
return [parseFloat(position[0]), parseFloat(position[1])];
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.