使用数组过滤器方法更改对象序列(Javascript)
我有以下名为使用数组过滤器方法更改对象序列(Javascript),javascript,arrays,reactjs,object,filter,Javascript,Arrays,Reactjs,Object,Filter,我有以下名为getRecommensions的对象数组。我将使用它来映射我将从后端接收的数据 const getRecommendations = [ { recoTitle: "Retire", recoDescription: "Its time to retire and relax with family" }, { recoTitle: "Buy home", recoDescription: &quo
getRecommensions
的对象数组。我将使用它来映射我将从后端接收的数据
const getRecommendations = [
{
recoTitle: "Retire",
recoDescription: "Its time to retire and relax with family"
},
{
recoTitle: "Buy home",
recoDescription: "Start saving to buy home in near future"
}
]
下面是我从后端收到的一系列建议,它们是按等级顺序排列的。例如,在这种情况下,买房
为排名1,退休
为排名2。有时可能是另一种情况。我希望按照从后端接收到UI显示的相同顺序显示建议
const建议=[“买房”、“退休”]代码>
但是我执行以下映射,因为我不仅需要recoTitle
,还需要recoDescription
来显示用户。我有getRecommendations
,它对recoTitle和recoDescription进行映射。下面的代码用于在对象数组中获取这两个值。详情如下:
const filteredReco = getRecommendations.filter(
({ recoTitle}) => recoDetails && recoDetails.indexOf(recoTitle) !== -1,
);
现在,如果我使用控制台日志查看filteredReco
的内容,Retire
将作为第一个对象出现,然后Buy Home
。如何确保列表的顺序不受过滤器使用方式的影响。有人能提出建议吗。这是因为您正在迭代GetRecommensions,而序列正是基于此。如果你想维持推荐中的顺序,你需要重写逻辑来循环推荐数组中的每一项,并从getRecommensionsRecommensions.map(recName=>getRecommensions.find(rec=>rec.recoTitle==recName))
类似的东西?@igk-是的,这很有效。谢谢你能把它也作为答案贴出来吗。可能会帮助别人是的,当然。快乐编码!
recommendations.map(recName =>
getRecommendations.find(rec => rec.recoTitle === recName)
)