我正在尝试将数据从对象分组到多维数组
在过去三天中,我尝试了多种方法来获得所需的结果。由于我没有运气,可能是由于我对ReactJS / ES6的了解不足。我希望有人能解释一下如何使它起作用。
我认为我必须使用map函数。在map函数中,一个过滤器函数获取唯一的公司,然后一个循环以添加表信息。
最终结果应如下:https://wireframe.cc/No5uB7
我要过滤的数据:
{
"viewings": [
{
"companyXXX": "company-XXX",
"time_start": "02/04/2019",
"time_end": "03/04/2019 11:59"
},
{
"companyXXX": "company-XXX",
"time_start": "14/04/2019",
"time_end": "15/04/2019 11:59"
},
{
"companyYYY": "company-YYY",
"rejection": 40,
"time_start": "14/04/2019",
"time_end": "15/04/2019 11:59"
}
]
}
我仍然有无法使用的代码
genData(data) {
const di = data.viewings;
let mps = [];
di.map(m => mps.push(m.company));
mps = Array.from(new Set(mps));
console.log( mps );
let mps = [];
di.map((m) =>
console.log( di.filter(mps => m.company) )
);
}
答案 0 :(得分:0)
欢迎您使用StackOverflow。
地图功能将返回一个列表。根据您的情况,您可以轻松地使用 forEach 方法代替地图。
像这样:
datas.forEach(data=>myArray.push(data.company))
有关map和forEach的更多信息,请参见以下链接:
答案 1 :(得分:0)
如果您的输入数据更加一致,可能会有所帮助,尤其是因为您正在尝试编写m.company
,除非每次查看中都有一个company
对象,否则这没有任何意义。
{
"viewings": [
{
"company": "company-XXX",
"time_start": "02/04/2019",
"time_end": "03/04/2019 11:59"
},
{
"company": "company-XXX",
"time_start": "14/04/2019",
"time_end": "15/04/2019 11:59"
},
{
"company": "company-YYY",
"time_start": "14/04/2019",
"time_end": "15/04/2019 11:59"
}
]
}
然后您可以编写:
var viewings = data.viewings.
var firstViewing = viewings[0];
var firstCompany = firstViewing.company;
var firstTimeStart = firstViewing.time_start;
// etc...
开始时,您的输入数据应更加结构化。
然后您可以注销每个公司名称:
var viewings = data.viewings;
viewings.forEach(v => {
console.log(v.company);
});
您在问题中提到JSX,但是没有JSX代码。这似乎是您对JS而不是JSX的了解所致。