我正在映射一個資料陣列以獲得我到點的距離,結果我得到(空過濾,排序陣列,然后提取)與我距離最近的點。結果我得到“距離:234456”。
現在,我正在嘗試使用具有更多屬性的 New/same Data 陣列來做同樣的事情,并且與 map.distance 結果一起,我也會得到額外的屬性。
{id: "1", Point: "-34.910490, -56.201567", A: "4"}假設這將是最近的點,新資料陣列將具有類似的物件,我將得到“距離:234456 和 A:4”的回報。
Data : [{id: "1", Point: "27.1597268, 40.6646601"},
{id: "2", Point: "11.1640393, 49.6487153"},
{id: "3", Point: "26.1539253, 42.6599287"},
{id: "4", Point: "21.1597268, 44.6646601"}],
const distances = this.state.Data.map(
(item) =>
!!(coords.longitude && coords.latitude) &&
getPreciseDistance(coords, item.Point)
)
.filter(Boolean)
.sort()
.map((distance) => <Text>{distance},</Text>);
uj5u.com熱心網友回復:
為了使你的函式回傳一個物件具有的屬性distance和a你可以改變你的地圖功能,不僅回傳一個值,但回到你想要的物件:
const distances = this.state.Data.map(
(item) =>
!!(coords.longitude && coords.latitude) &&
// return an object instead of a single number
({ distance: getPreciseDistance(coords, item.Point), a: item.a})
)
.filter(Boolean)
.sort()
但是,如果您正在搜索距離最大的單個專案,我通常會在函式鏈的末尾使用find 函式。這樣您就可以確保您的函式始終只回傳一項。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315988.html
標籤:数组 反应 特性 数组.prototype.map
