执行 array.map 后也检索其他项目属性
Retrieve other item properties too, after executing array.map
我正在映射一个数据数组以获得我到点的距离,结果我得到(空过滤、排序数组然后提取)距离我最近的点。结果我得到“距离:234456”。
现在,我正在尝试对 New/same 数据数组和另一个 属性 数组做同样的事情,并且与 map.distance 结果一起,我将进入 return 额外的 属性 也是。
新数据数组会有像 {id: "1", Point: "-34.910490, -56.201567", A: "4"}
这样的对象,所以假设这将是最近的点,我会得到 return“距离: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>);
为了使您的函数 return 成为具有属性 distance
和 a
的对象,您可以将地图函数更改为不仅 return 单个值,但是return你想要的对象:
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 function。这样您就可以确保您的函数始终只有 return 一项。
我正在映射一个数据数组以获得我到点的距离,结果我得到(空过滤、排序数组然后提取)距离我最近的点。结果我得到“距离:234456”。
现在,我正在尝试对 New/same 数据数组和另一个 属性 数组做同样的事情,并且与 map.distance 结果一起,我将进入 return 额外的 属性 也是。
新数据数组会有像 {id: "1", Point: "-34.910490, -56.201567", A: "4"}
这样的对象,所以假设这将是最近的点,我会得到 return“距离: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>);
为了使您的函数 return 成为具有属性 distance
和 a
的对象,您可以将地图函数更改为不仅 return 单个值,但是return你想要的对象:
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 function。这样您就可以确保您的函数始终只有 return 一项。