Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数组过滤器方法更改对象序列(Javascript)_Javascript_Arrays_Reactjs_Object_Filter - Fatal编程技术网

使用数组过滤器方法更改对象序列(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,而序列正是基于此。如果你想维持推荐中的顺序,你需要重写逻辑来循环推荐数组中的每一项,并从getRecommensions
Recommensions.map(recName=>getRecommensions.find(rec=>rec.recoTitle==recName))
类似的东西?@igk-是的,这很有效。谢谢你能把它也作为答案贴出来吗。可能会帮助别人是的,当然。快乐编码!
recommendations.map(recName =>  
   getRecommendations.find(rec => rec.recoTitle === recName)
)