有没有一种简单的方法可以遍历对象的值是对象数组的对象,从而根据这些对象的值生成列表

我有一个要导入到类似于以下内容的React页面中的JSON对象:

gm.gameOver()

,我想遍历以上对象,并使用每个唯一类别动态填充选择下拉列表元素的选项。

选择内容如下所示:

const obj1 = {
  "January": [
    {
      "Id": 1,"FileName": "some file","Format": "Excel (.xlsx)","Category": "some category 1","Start": "01/01/2019","End": "12/31/2019","Created": "01/09/2019"
    },{
      "Id": 2,"FileName": "some big file","Category": "some category 2","Start": "01/01/2018","End": "12/31/2018","Created": "01/09/2019"
    }
  ],"February": [
    {
      "Id": 3,"FileName": "some small file","Format": "PDF (.pdf)","Category": "some category 3",{
      "Id": 4,"FileName": "some other file","Category": "some category 4","Created": "01/09/2018"
    }
  ],"March": [
    {
      "Id": 55,"FileName": "some file again","Category": "some category 5","Start": "01/01/2017","End": "12/31/2017","Created": "01/09/2017"
    }
  ]
};

有没有很好的方法可以做到这一点?谢谢!

ycit_wdrangers 回答:有没有一种简单的方法可以遍历对象的值是对象数组的对象,从而根据这些对象的值生成列表

您可以尝试展平数组并通过其映射以提取值

Object.values(obj1).flat().map((a)=> a.Category)

如果数组始终为一维,则可以省略flat()

结果:

["some category 1","some category 2","some category 3","some category 4","some category 5"]
,

如果我选择underscore

let Categories = [];
for (let x of obj1) {
    Categories.push(x.Category);
}
let uniqueCategories = _.uniqWith(Categories,_.isEqual);
return uniqueCategories;
本文链接:https://www.f2er.com/3168342.html

大家都在问